Vamos a tratar de explicar cómo interpretar planes de ejecución gráficos básicos, es decir, planes de ejecución para sentencias del tipo SELECT, UPDATE, INSERT Y DELETE, con sólo unos pocos JOINS y si no hay funciones avanzadas o indirectas.
Los planes gráficos están basados en iconos, y el número de iconos a aprender es mínimo. Cada icono representa un operador específico dentro de la ejecución del plan. Se va a utilizar el término "icono" y "operador" de forma intercambiable.
Hay 78 operadores disponibles. Afortunadamente, no es necesario memorizar todos antes de que podamos leer un plan de ejecución gráfico. La mayoría de las consultas utilizan sólo un pequeño subconjunto de operadores, y nos centraremos en los principales. Si vemos un icono desconocido, se puede encontrar
más información al respecto en los libros en pantalla. .
Un plan de ejecución gráfico muestra cuatro tipos distintos de operadores:
• Los operadores lógicos y físicos, también llamados iteradores, aparecen como iconos azules y representan la ejecución de consultas u operaciones DML.
• Operadores de paralelismo físico son también iconos azules y representan operaciones de paralelismo. Son un subconjunto de los operadores lógicos y físicos, pero conllevan un nivel completamente diferente de análisis en el plan de ejecución.
• Operadores de cursor, tienen iconos de color amarillo y representan operaciones de cursor de SQL.
• Elementos del lenguaje son iconos verdes y representan elementos del lenguaje SQL, como ASSIGN, DECLARE, IF, SELECT (RESULT), WHILE.
Nos centraremos principalmente en los operadores lógicos y físicos, incluyendo algunos operadores de paralelismo físico. Algunos textos enumeran en orden alfabético todos los operadores, pero esta no es la forma más fácil de aprenderlos, aquí nos centraremos en los iconos más comunes.
Podemos aprender mucho de cómo trabajan los operadores observando la forma en que operan dentro de los planes de ejecución. La clave, es aprender a utilizar las propiedades de cada uno de los operadores y profundizar en ellas. Cada operador, tiene un conjunto diferente de características. Algunos operadores, principalmente Sort, Hash Match (Aggregate) y Hash Join requieren una cantidad variable de memoria para ejecutarse. Una consulta con uno de estos operadores puede tener un tiempo de retardo antes de su ejecución, pudiendo afectar negativamente al rendimiento. A continuación, se muestra una lista de los operadores.