Published on

July 12, 2019

Comprendiendo los planes de ejecución de SQL Server

Cuando se trata de optimizar el rendimiento de tus consultas SQL, los planes de ejecución son una herramienta invaluable. En este artículo, exploraremos los conceptos básicos de los planes de ejecución y cómo puedes utilizarlos para mejorar el rendimiento de tus propias consultas.

SQL es un lenguaje declarativo, lo que significa que en lugar de programar los detalles de cómo se debe recuperar los datos, simplemente describimos qué datos queremos y SQL Server se encarga de cómo devolvérnoslos. El Optimizador de Consultas de SQL Server considera múltiples opciones para devolver los datos y estima los costos de estos enfoques. El enfoque elegido se conoce como el plan de ejecución de la consulta.

La mayoría de las veces, el Optimizador de Consultas selecciona un plan de consulta que devuelve los datos solicitados rápidamente. Sin embargo, hay casos en los que el plan elegido no es eficiente. Esto puede ocurrir debido a varios problemas que exploraremos en futuros artículos.

Para obtener un plan de ejecución para tu consulta, puedes utilizar el comando SET SHOWPLAN_ALL ON. Esto proporcionará una representación en forma de árbol basada en texto del plan. Alternativamente, puedes utilizar la opción gráfica disponible en SQL Server Management Studio (SSMS) haciendo clic en el botón “Mostrar plan de ejecución estimado” o ejecutando SET SHOWPLAN_XML ON y ejecutando tu consulta.

El plan de ejecución gráfico es mi preferencia personal ya que proporciona una representación visual del plan. Sin embargo, también puedes ver la versión XML haciendo clic derecho en el plan gráfico y seleccionando “Mostrar plan de ejecución XML”. La versión XML puede ser útil para acceder a propiedades que no se muestran en el plan gráfico.

Hasta ahora, hemos visto planes de ejecución “estimados”, que solo contienen estimaciones de cuántas filas se procesarán. Para ver el plan de ejecución “real”, puedes seleccionar el icono correspondiente en SSMS. El plan real superpone información en tiempo de ejecución en la estimación del plan, como el número de filas procesadas y el uso de memoria.

Las estadísticas de consulta en vivo proporcionan lo mejor de los planes de ejecución estimados y reales. Con las estadísticas de consulta en vivo habilitadas, SQL Server proporciona el plan de ejecución estimado pero superpone estadísticas en tiempo real a medida que la consulta se ejecuta en tiempo real. Esto te permite identificar cuellos de botella de rendimiento en el plan de ejecución, especialmente si eres nuevo en el análisis de planes.

SQL Server almacena en caché los planes de consulta para reutilizarlos y evitar el costo de calcularlos repetidamente. Puedes ver estos planes en caché utilizando la vista de administración dinámica sys.dm_exec_cached_plans. Si tienes habilitado Query Store, también puedes acceder a los planes de consulta almacenados en las vistas de administración dinámica de Query Store o a través de la interfaz gráfica de Query Store.

Independientemente de cómo y dónde obtengas tu plan de ejecución, todas las técnicas anteriores te proporcionarán información sobre cómo SQL Server está obteniendo los datos especificados en tu consulta.

Mantente atento a futuros artículos en los que profundizaremos en la solución de problemas de problemas comunes con los planes de ejecución y la optimización del rendimiento de las consultas.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.