No SQL Server, você pode usar o
SET SHOWPLAN_XML
instrução para retornar informações detalhadas sobre como uma instrução T-SQL será executada, na forma de um documento XML bem definido. É semelhante a
SHOWPLAN_ALL
, exceto que SHOWPLAN_ALL
retorna seu conjunto de dados de linhas que formam uma árvore hierárquica. Você pode definir
SHOWPLAN_XML
para ON
ou OFF
. Quando
SHOWPLAN_XML
está ON
, todas as instruções T-SQL subsequentes não serão executadas. Em vez disso, o SQL Server retorna informações de execução para a instrução (sem executá-la). Exemplo
Aqui está um exemplo para demonstrar.
SET SHOWPLAN_XML ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Observe que
SET SHOWPLAN_XML
não pode ser especificado dentro de um procedimento armazenado e deve ser a única instrução em um lote. O resultado obtido pode depender de qual ferramenta você está usando para acessar o SQL Server.
Quando executo isso no Azure Data Studio, posso clicar nas várias guias para obter uma visão diferente do resultado.
Os Resultados guia exibe a string XML bruta:
Clicar na linha abre o documento XML em uma nova guia:
O Plano de consulta guia exibe uma representação gráfica do resultado:
As Principais Operações tab apresenta os dados em formato tabular que permite classificar os dados por várias métricas:
Não está funcionando?
Se não funcionar para você, certifique-se de Incluir Plano de Execução Real não está selecionado no SSMS. Quando selecionado,
SET SHOWPLAN_XML ON
não produz saída XML Showplan. Como desativá-lo
Você pode desativá-lo usando
SET SHOWPLAN_XML OFF
. Depois de fazer isso, as instruções subsequentes serão executadas normalmente.
SET SHOWPLAN_XML OFF;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Resultado:
Commands completed successfully. +---------+-----------+---------+-----------+-----------+ | CatId | CatName | DogId | DogName | GoodDog | |---------+-----------+---------+-----------+-----------| | 2 | Fluffy | 2 | Fluffy | 0 | +---------+-----------+---------+-----------+-----------+ (1 row affected) Commands completed successfully.
Plano de execução em GUIs
Se você estiver usando uma ferramenta gráfica, como SSMS ou Azure Data Studio, poderá ter uma opção de atalho para visualizar o plano de execução de consulta gráfica estimado. Isso permite que você visualize o plano de consulta sem precisar executar
SET SHOWPLAN_XML ON
. Para executar um plano de consulta estimado:
- No SSMS, você pode usar Ctrl + L para fazer isso. Ou você pode clicar em Exibir plano de execução estimado ícone ou clique com o botão direito do mouse na janela de consulta e selecione Exibir plano de execução estimado . Isso evitará que você tenha que ativar
SHOWPLAN_XML
liga e desliga no seu código. - No Azure Data Studio, você pode clicar no botão Explicar botão acima da janela de consulta.
Você também pode executar um plano de consulta real:
- No SSMS, na Consulta menu, clique em Incluir plano de execução real ou clique em Incluir Plano de Execução Real botão da barra de ferramentas.
- No Azure Data Studio, vá para Exibir> Paleta de Comandos e digite Executar consulta atual com plano real .
Observe que, se incluir plano de execução real estiver selecionado no SSMS, o
SET SHOWPLAN_XML ON
opção não produz saída XML Showplan. Tente limpar o Incluir plano de execução real botão antes de usar este SET
opção. No entanto, acho que o Azure Data Studio faz o oposto
SHOWPLAN_XML ON
parece substituir o Executar consulta atual com plano real opção, exceto se eu executar Explicar primeiro (plano de consulta estimado), após o qual Executar consulta atual com plano real de repente funciona (as linhas reais e Execuções Reais colunas das Principais operações guia retornar os dados apropriados). Provavelmente, é melhor desativar a opção XML Showplan antes de usar outros métodos para recuperar o plano de consulta.