Partilhar via


Visão geral do plano de execução

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada 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 Otimizador de Consulta. A entrada para o Otimizador de Consulta consiste na consulta, no esquema do banco de dados (definições de tabela e índice) e nas estatísticas do 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 Consulta escolhe um plano de consulta usando um conjunto de heurísticas para equilibrar o tempo de compilação e a otimização do plano para encontrar um bom plano de consulta.

Dica

Para obter mais informações sobre o processamento de consultas e planos de execução de consultas, consulte as seções Otimização de instruções SELECT e Cache e reutilização do plano de execução do guia sobre a 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 é a definição de:

  • A sequência na qual as tabelas de origem são acessadas.

    Normalmente, há muitas sequências nas 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 fizer referência a três tabelas, o servidor de banco de dados poderá primeiro acessar TableA, usar os dados de TableA para extrair linhas correspondentes de TableBe, em seguida, usar os dados de TableB para extrair dados de TableC. As outras sequências nas quais o servidor de banco de dados pode acessar as tabelas são:
    TableC, TableB, TableA, ou
    TableB, TableA, TableC, ou
    TableB, TableC, TableA, ou
    TableC, TableA, TableB

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

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

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

    Como os dados são acessados a partir de tabelas, há diferentes métodos para executar cálculos sobre dados, como calcular 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.