Visão geral do plano de execução

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Para poder executar consultas, o Mecanismo de Banco de Dados do SQL Server deve analisar a instrução para determinar uma maneira eficiente de acessar os dados necessários e processá-los. Essa análise é tratada por um componente chamado de Otimizador de Consulta. A entrada do Otimizador de Consulta consiste em uma consulta, o esquema de banco de dados (definições de tabela e de índice) e as estatísticas de banco de dados. O Otimizador de Consultas cria um ou mais planos de execução de consulta, às vezes chamados de planos de consulta ou planos de execução. O Otimizador de Consultas escolhe um plano de consulta usando um conjunto de heurísticas para equilibrar o tempo de compilação e planejar a otimização para encontrar um bom plano de consulta.

Dica

Para obter mais informações sobre o processamento de consultas e planos de execução de consulta, confira as seções Otimizar as instruções SELECT e Cache e Reutilização do Plano de Execução do Guia de Arquitetura de Processamento de Consultas.

Para obter informações sobre como exibir planos de execução no SQL Server Management Studio e no Azure Data Studio, consulte Exibir e salvar planos de execução.

Um plano de execução de consulta é uma definição do seguinte:

  • A sequência em que as tabelas de origem são acessadas.

    Normalmente, há muitas sequências pelas quais o servidor de banco de dados pode acessar as tabelas base para criar o conjunto de resultados. Por exemplo, se uma instrução SELECT fizesse referência a três tabelas, o servidor de banco de dados poderia acessar TableAprimeiro, usar os dados de TableA para extrair as linhas correspondentes de TableBe usar os dados de TableB para extrair dados de TableC. As outras sequências em que o servidor de banco de dados poderia acessar as tabelas são:
    TableC, TableB, TableAou
    TableB, TableA, TableCou
    TableB, TableC, TableAou
    TableC, TableA, TableB

  • Os métodos usados para extrair dados de cada tabela.

    Geralmente, há métodos diferentes para acessar os dados em cada tabela. Se forem necessárias apenas algumas linhas com valores de chave específicos, o servidor de banco de dados poderá usar um índice. Se forem necessárias todas as linhas da tabela, o servidor de banco de dados poderá ignorar os índices e executar um exame na tabela. Se forem necessárias todas as linhas de uma tabela, mas houver um índice cujas colunas de chave estão em um ORDER BY, a execução de uma verificação de índice em vez de uma verificação de tabela poderá salvar um conjunto de resultados separado. Se uma tabela for pequena, os exames de tabela poderão ser o método mais eficiente para quase todos os acessos à tabela.

  • Os métodos usados para computar cálculos e como filtrar, agregar e classificar dados de cada tabela.

    Como os dados são acessados a partir de tabelas, existem métodos diferentes para executar cálculos em dados, como a computação de valores escalares, e para agregar e classificar dados conforme definido no texto da consulta, por exemplo, ao usar uma cláusula GROUP BY ou ORDER BY, e como filtrar dados, por exemplo, ao usar uma cláusula WHERE ou HAVING.