Partilhar via


CONJUNTO SHOWPLAN_XML (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do AzureAzure Synapse Analytics (somente pool SQL dedicado)ponto de extremidade de análise SQL no Microsoft FabricWarehouse no Microsoft Fabric

Faz com que o SQL Server não execute instruções Transact-SQL. Em vez disso, o SQL Server retorna informações detalhadas sobre como as instruções serão executadas na forma de um documento XML bem definido.

No Fabric Data Warehouse e no ponto de extremidade de análise SQL, o SET SHOWPLAN_XML é um recurso de visualização.

Transact-SQL convenções de sintaxe

Sintaxe

SET SHOWPLAN_XML { ON | OFF }

Comentários

A configuração de SET SHOWPLAN_XML é definida em tempo de execução ou execução e não em tempo de análise.

Quando SET SHOWPLAN_XML está ON, o SQL Server retorna informações do plano de execução para cada instrução sem executá-la e Transact-SQL instruções não são executadas. Depois que essa opção for definida como ATIVADA, as informações do plano de execução sobre todas as instruções Transact-SQL subsequentes serão retornadas até que a opção seja desativada. Por exemplo, se uma instrução CREATE TABLE for executada enquanto SET SHOWPLAN_XML estiver ON, o SQL Server retornará uma mensagem de erro de uma instrução SELECT subsequente envolvendo essa mesma tabela; A tabela especificada não existe. Portanto, as referências subsequentes a esta tabela falham. Quando SET SHOWPLAN_XML está OFF, o SQL Server executa as instruções sem gerar um relatório.

SET SHOWPLAN_XML destina-se a retornar a saída como nvarchar(max) para aplicativos como o utilitário sqlcmd, onde a saída XML é subsequentemente usada por outras ferramentas para exibir e processar as informações do plano de consulta.

Observação

A exibição de gerenciamento dinâmico, sys.dm_exec_query_plan, retorna as mesmas informações que SET SHOWPLAN XML no xml tipo de dados. Essas informações são retornadas da coluna query_plan de sys.dm_exec_query_plan. Para obter mais informações, consulte sys.dm_exec_query_plan (Transact-SQL).

SET SHOWPLAN_XML não pode ser especificado dentro de um procedimento armazenado. Deve ser a única declaração de um lote.

SET SHOWPLAN_XML retorna informações como um conjunto de documentos XML. Cada lote após a instrução SET SHOWPLAN_XML ON é refletido na saída por um único documento. Cada documento contém o texto das instruções no lote, seguido dos detalhes das etapas de execução. O documento mostra os custos estimados, o número de linhas, os índices acessados e os tipos de operadores executados, a ordem de junção e mais informações sobre os planos de execução.

Observação

Se Incluir Plano de Execução Real estiver selecionada no SQL Server Management Studio, essa opção SET não produzirá a saída do Plano de Execução XML. Desmarque o botão Incluir Plano de Execução Real antes de usar esta opção SET.

Os planos de execução estimados por meio do SSMS e do SET SHOWPLAN_XML estão disponíveis para pools SQL dedicados (anteriormente SQL DW) e pools SQL dedicados no Azure Synapse Analytics. Para recuperar um plano de execução real para pools SQL dedicados (anteriormente SQL DW) e pools SQL dedicados no Azure Synapse Analytics, há comandos diferentes. Para obter mais informações, consulte Monitorar sua carga de trabalho dedicada do pool SQL do Azure Synapse Analytics usando DMVs.

Localização da saída SHOWPLAN

O documento que contém o esquema XML para a saída XML por SET SHOWPLAN_XML é copiado durante a instalação para um diretório local no computador no qual o Microsoft SQL Server está instalado. O documento pode ser encontrado na unidade que contém os arquivos de instalação do SQL Server, em um caminho semelhante ao seguinte:

  • \Microsoft SQL Server\130\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

No caminho anterior, o nó 130\ é usado pelo SQL Server 2016. O número 130 é derivado do primeiro nó do valor retornado por SELECT @@VERSION, que é 13. Para o SQL Server 2017, o caminho usaria 140\, porque o primeiro nó de seu valor @@VERSION é 14. SQL Server 2019 o primeiro valor de @@VERSION é 15. SQL Server 2022 o primeiro valor de @@VERSION é 16.

O esquema Showplan também pode ser encontrado em Microsoft SQL Server XML Schemas.

Permissões

Para usar o SET SHOWPLAN_XML, você deve ter permissões suficientes para executar as instruções nas quais o SET SHOWPLAN_XML é executado e deve ter permissão SHOWPLAN para todos os bancos de dados que contenham objetos referenciados.

Para SELECT, INSERT, UPDATE, DELETE, EXEC *stored_procedure*e EXEC *user_defined_function* instruções, para produzir um Showplan o usuário deve:

  • Tenha as permissões apropriadas para executar as instruções Transact-SQL.

  • Tenha permissão SHOWPLAN em todos os bancos de dados que contenham objetos referenciados pelas instruções Transact-SQL, como tabelas, exibições e assim por diante.

Para todas as outras instruções, como DDL, USE *database_name*, SET, DECLARE, SQL dinâmico e assim por diante, apenas as permissões apropriadas para executar as instruções Transact-SQL são necessárias.

Exemplos

As duas instruções a seguir usam as configurações de SHOWPLAN_XML SET para mostrar a maneira como o SQL Server analisa e otimiza o uso de índices em consultas.

A primeira consulta usa o operador de comparação Equals (=) na cláusula WHERE em uma coluna indexada. A segunda consulta usa o operador LIKE na cláusula WHERE. Isso força o SQL Server a usar uma verificação de índice clusterizado e localizar os dados que atendem à condição da cláusula WHERE. Os valores nos atributos EstimateRows e EstimatedTotalSubtreeCost são menores para a primeira consulta indexada, indicando que ela é processada muito mais rapidamente e usa menos recursos do que a consulta não indexada.

USE AdventureWorks2022;
GO
SET SHOWPLAN_XML ON;
GO
-- First query.
SELECT BusinessEntityID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE JobTitle LIKE 'Production%';
GO
SET SHOWPLAN_XML OFF;

Próximos passos