Como atacar problemas de rendimiento de Código T-SQL

Mi intencion con este proyecto es comentar un poco de lo que hago cuando encuentro problemas con los SQL que escribo o han escrito otras personas en el lugar donde trabajo.

Por razones de simplificar esta sección voy a utilizar codigo de la base de datos adventureWorks de MS para algunas de las pruebas.
Si no tienes una copia de esta base de datos o una instancia de SQL server corriendo puedes bajar tanto la base de datos como el motor en su version para desarrollador de las siguientes paginas de Microsoft.

Que T-SQL? es la implementacion de ANSI SQL de Microsoft, es el lenguaje que utilizamos para comunicarnos con el motor de base de datos Microsoft SQL Server.

Que son los planes de Ejecucion en SQL?

Los planes de ejecucion son las instrucciones que el motor de base datos requiere para poder recuperar la informacion que cumpla con las condiciones que estamos definiendo para nuestras consultas.

No vamos a ahondar mucho en el tema, pero basicamente se hace una validacion de sintaxis del codigo que el usuario introduce, despues se valida si todos los objetos que incluyo en mi consulta existen en la base de datos. Los planes de ejecucion son una tarea relativamente cara por lo que MSSQL validara si existe un plan para la consulta que introducimos, de lo contrario intentera generar un plan para la consulta.

Como comente hace unas lineas el plan de ejecucion se compone de instrucciones para acceder los datos que estamos buscando, algunos ejemplos de estas instrucciones son table Scans, index scans, index seeks, etc. Para conocer mas acerca de estas instrucciones se puede buscar en informacion acá.

Los planes de ejecucion dependen de las estadisticas de las tablas, la mismas pueden ser vistas como histogramas, son representaciones variables que nos indican como estan distribuidos los datos en una estructura particular. Podemos decir que nuestras consultas (queries) seran tan buenos como las estadisticas que tenga la base de datos a consultar

Avatar de Desconocido

Autor: Luis Carlos Diaz

DBA for more than 20 years, the DBA manager of a team of 7.

Un comentario en “Como atacar problemas de rendimiento de Código T-SQL”

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.