Compartir por


Información general sobre el plan de ejecución

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance

Para poder ejecutar consultas, el motor de base de datos de SQL Server debe analizar la instrucción para determinar una manera eficaz de acceder a los datos necesarios y procesarlos. Este análisis se controla mediante un componente denominado Optimizador de consultas. La entrada al Optimizador de consultas consta de la consulta, el esquema de la base de datos (definiciones de tabla e índice) y las estadísticas de base de datos. El optimizador de consultas compila uno o varios planes de ejecución de consultas, a veces denominados planes de consulta o planes de ejecución. El optimizador de consultas elige un plan de consulta mediante un conjunto de heurística para equilibrar el tiempo de compilación y la optimización del plan para encontrar un buen plan de consulta.

Sugerencia

Para obtener más información sobre el procesamiento de consultas y los planes de ejecución de consultas, consulte las secciones Optimización de instrucciones SELECT y Almacenamiento en caché y reutilización del plan de ejecución de la guía de arquitectura de procesamiento de consultas.

Para obtener información sobre cómo ver los planes de ejecución en SQL Server Management Studio y Azure Data Studio, consulte Mostrar y guardar planes de ejecución.

Un plan de ejecución de consultas es la definición de:

  • La secuencia en la que se tiene acceso a las tablas de origen.

    Normalmente, hay muchas secuencias diferentes en las que el servidor de la base de datos puede tener acceso a las tablas base para generar el conjunto de resultados. Por ejemplo, si una instrucción SELECT hace referencia a tres tablas, el servidor de la base de datos podría tener acceso primero a TableA, utilizar los datos de TableA para extraer las filas que coincidan con las de TableBy, finalmente, utilizar los datos de TableB para extraer datos de TableC. Las demás secuencias en las que el servidor de base de datos podría tener acceso a las tablas son:
    TableC, TableB, TableAo
    TableB, TableA, TableCo
    TableB, TableC, TableAo
    TableC, TableA, TableB

  • Los métodos que se usan para extraer los datos de cada tabla.

    Por lo general, hay métodos diferentes para tener acceso a los datos de cada tabla. Si solo se necesitan unas cuantas filas con valores de clave específicos, el servidor de la base de datos puede utilizar un índice. Si se necesitan todas las filas de una tabla, el servidor de la base de datos puede omitir los índices y realizar un recorrido de la tabla. Si se requieren todas las filas de una tabla, pero hay un índice cuyas columnas de clave se encuentran en ORDER BY, realizar un análisis de índice en lugar de un recorrido de tabla podría guardar un conjunto de resultados independiente. Si la tabla es pequeña, el recorrido puede ser el método más eficaz para la mayoría de los accesos a la tabla.

  • Los métodos que se usan para realizar cálculos, y cómo filtrar, agregar y ordenar los datos de cada tabla.

    A medida que se tiene acceso a los datos desde las tablas, existen distintos métodos para realizar cálculos sobre ellos (por ejemplo, calcular valores escalares), para agregarlos y ordenarlos tal como se define en el texto de la consulta, por ejemplo, cuando se usa una cláusula GROUP BY o ORDER BY, y cómo filtrarlos, por ejemplo, cuando se usa una cláusula WHERE o HAVING.