SET STATISTICS XML (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Faz com que o Microsoft SQL Server execute instruções Transact-SQL e gere informações detalhadas sobre como as instruções foram executadas na forma de um documento XML bem-definido.
Convenções de sintaxe de Transact-SQL
Sintaxe
SET STATISTICS XML { ON | OFF }
Comentários
A configuração de SET STATISTICS XML é definida no momento da execução ou do tempo de execução, e não no momento da análise.
Quando SET STATISTICS XML estiver ON (acionado), o SQL Server retorna informações de execução para cada instrução, depois de executá-las. Depois que essa opção estiver definida como ON, as informações sobre todas as instruções Transact-SQL subsequentes serão retornadas até que a opção seja definida como OFF. Note que SET STATISTICS XML não precisa ser a única instrução em um lote.
SET STATISTICS XML retorna a saída como nvarchar(max) para aplicativos, como o utilitário sqlcmd, em que a saída XML é posteriormente usada por outras ferramentas para exibir e processar as informações do plano de consulta.
SET STATISTICS XML retorna informações como um conjunto de documentos XML. Todas as instruções depois da instrução STATISTICS XML ON serão refletidas na saída por um único documento. Cada documento conterá o texto das instruções, seguido dos detalhes das etapas da execução. A saída mostra informações de tempo de execução como os custos, índices acessados e tipos de operações executadas, ordem de junção, o número de horas de execução de uma operação física, o número de linhas que cada operador físico produziu, e mais.
O documento que contém o esquema XML para a saída do XML por SET STATISTICS XML é copiado durante a instalação em um diretório local no computador no qual o Microsoft SQL Server está instalado. Ele pode ser encontrado na unidade que contém os arquivos de instalação do SQL Server, em:
\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
O esquema do plano de execução também pode ser encontrado neste site.
SET STATISTICS PROFILE e SET STATISTICS XML são contrapartes um do outro. O primeiro produz saída textual; o último produz saída XML. Em versões futuras do SQL Server, novas informações do plano de execução de consultas serão exibidas apenas com a instrução SET STATISTICS XML, e não com a instrução SET STATISTICS PROFILE.
Observação
Se Incluir Plano de Execução Real estiver selecionado no 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.
Permissões
Para usar SET STATISTICS XML e exibir a saída, os usuários devem ter as seguintes permissões:
Permissões adequadas para executar as instruções Transact-SQL.
A permissão de SHOWPLAN em todos os bancos de dados que são referenciados pelas instruções Transact-SQL.
Para instruções Transact-SQL que não produzem conjuntos de resultados STATISTICS XML, somente serão necessárias as permissões apropriadas para executar as instruções Transact-SQL. Para as instruções Transact-SQL que produzem conjuntos de resultados STATISTICS XML, garanta que ambas, a permissão de execução de instrução Transact-SQL e a permissão SHOWPLAN sejam bem-sucedidas, ou a instrução de execução Transact-SQL será anulada e nenhuma informação Showplan será gerada.
Exemplos
As duas instruções a seguir usam as configurações SET STATISTICS XML para mostrar o modo como o SQL Server analisa e otimiza o uso de índices em consultas. A primeira consulta usa o operador de comparação Igual a (=), na cláusula WHERE, em uma coluna indexada. A segunda consulta usa o operador LIKE na cláusula WHERE. Isto força o SQL Server a usar uma verificação de índice clusterizado e a 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 foi processada com maior rapidez e usou menos recursos que a consulta não indexada.
USE AdventureWorks2022;
GO
SET STATISTICS 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 STATISTICS XML OFF;
GO