Para qué sirve un plan de ejecución
Escribimos una consulta para indicar qué resultado necesitamos. SQL Server todavía debe decidir cómo localizar, combinar y procesar los datos para producirlo. El plan de ejecución representa esa estrategia.
La consulta describe el resultado
SQL es un lenguaje declarativo: expresamos el resultado que queremos, no una secuencia completa de pasos físicos. Una instrucción puede pedir clientes con pedidos confirmados, pero no necesita indicar qué índice abrir primero, cómo recorrerlo o qué método utilizar para relacionar las tablas.
Declarativo significa que describimos el objetivo. El motor conserva la responsabilidad de elegir una estrategia para alcanzarlo.
Dos consultas pueden devolver las mismas filas mediante estrategias diferentes. Una misma consulta también puede recibir otro plan cuando cambian los parámetros, los datos, los índices, las estadísticas o la versión del motor.
El optimizador elige una estrategia
Antes de ejecutar una consulta, SQL Server utiliza el optimizador para comparar alternativas. Este componente considera las estructuras disponibles y estima el trabajo de diferentes caminos.
Entre esas estructuras pueden existir tablas, índices y estadísticas:
- una tabla conserva las filas y columnas;
- un índice organiza valores para facilitar determinados accesos;
- las estadísticas describen la distribución aproximada de los datos y ayudan a estimar cuántas filas podrían cumplir una condición.
El optimizador no intenta probar todas las estrategias posibles. Busca una alternativa con un costo estimado razonable dentro del tiempo disponible para compilar.
El plan representa la estrategia elegida
El plan de ejecución es una representación de las operaciones que SQL Server eligió conectar para producir el resultado. Cada operación recibe, obtiene o entrega filas.
Estas operaciones se denominan operadores. Un operador puede acceder a una tabla o índice, filtrar filas, combinar conjuntos, ordenar información o calcular un valor. El plan muestra cómo se relacionan, pero todavía necesitamos aprender a leer su estructura antes de evaluar si una decisión merece investigación.
Resultado, estrategia y medición
Conviene mantener separados tres elementos:
- el resultado contiene las filas producidas por la consulta;
- el plan describe la estrategia elegida para obtenerlas;
- las mediciones registran trabajo observado, como lecturas, CPU o duración.
Un resultado correcto no demuestra que la estrategia sea adecuada para todos los volúmenes o parámetros. Un plan tampoco demuestra por sí solo cuánto tardó una ejecución. Para evaluar rendimiento debemos relacionar la estrategia con mediciones obtenidas bajo condiciones conocidas.
Para qué conviene consultarlo
El plan ayuda a:
- reconstruir cómo SQL Server espera acceder y procesar los datos;
- reconocer tablas, índices y operaciones participantes;
- localizar estimaciones o decisiones que necesitan comprobarse;
- comparar estrategias antes y después de un cambio controlado;
- formular una pregunta más precisa sobre el trabajo de la consulta.
Qué todavía no demuestra
Un plan aislado no demuestra que una operación sea incorrecta, que deba crearse un índice ni que la alternativa con menor costo estimado vaya a funcionar mejor en todas las condiciones.
Tampoco autoriza a modificar una consulta empresarial sin revisar parámetros, frecuencia, volumen, concurrencia y efectos sobre otras operaciones. El plan aporta evidencia para investigar; no reemplaza la medición ni el contexto.
Siguiente comprobación razonable
La siguiente entrada distingue plan estimado, plan real y estadísticas en vivo. Después estudiaremos la anatomía del diagrama y solo entonces trabajaremos con ejemplos controlados.
