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 acessarTableA
primeiro, usar os dados deTableA
para extrair as linhas correspondentes deTableB
e usar os dados deTableB
para extrair dados deTableC
. As outras sequências em que o servidor de banco de dados poderia 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, 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
ouORDER BY
, e como filtrar dados, por exemplo, ao usar uma cláusulaWHERE
ouHAVING
.
Conteúdo relacionado
- Monitorar e ajustar o desempenho
- Monitoramento de desempenho e ferramentas de ajuste
- Guia de arquitetura de processamento de consultas
- Estatísticas de consulta dinâmica
- Monitor de Atividade
- Monitorar o desempenho usando o Repositório de Consultas
- sys.dm_exec_query_statistics_xml
- sys.dm_exec_query_profiles
- DBCC TRACEON: sinalizadores de rastreamento (Transact-SQL)
- Referência de operador lógico e físico para o plano de execução
- Infraestrutura de Criação de Perfil de Consulta
- Exibir e salvar planos de execução
- Comparar e analisar planos de execução
- Guias de plano