Partilhar via


SET STATISTICS XML (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Faz com que o Microsoft SQL Server execute Transact-SQL instruções e gere informação detalhada sobre como as instruções foram executadas sob a forma de um documento XML bem definido.

Transact-SQL convenções de sintaxe

Sintaxe

  
SET STATISTICS XML { ON | OFF }  

Observações

A definição de SET STATISTICS XML é definida em tempo de execução ou execução e não em tempo de análise sintática.

Quando o SET STATISTICS XML está LIGADO, o SQL Server retorna informação de execução para cada instrução após a sua execução. Depois de esta opção ser ativada, a informação sobre todas as instruções Transact-SQL subsequentes é devolvida até que a opção seja definida como DESLIGADO. Note que SET STATISTICS XML não precisa de ser a única instrução num lote.

SET STATISTICS O XML devolve a saída como nvarchar(max) para aplicações, como a utilitária sqlcmd , onde a saída XML é posteriormente usada por outras ferramentas para mostrar e processar a informação do plano de consulta.

SET STATISTICS XML devolve informação como um conjunto de documentos XML. Cada instrução após a instrução SET STATISTICS XML ON é refletida na saída por um único documento. Cada documento contém o texto da declaração, seguido dos detalhes dos passos de execução. A saída mostra informações em tempo de execução, como custos, índices acedidos e tipos de operações realizadas, ordem de junção, número de vezes que uma operação física é realizada, número de linhas produzidas por cada operador físico, entre outros.

O documento que contém o esquema XML para a saída XML por SET STATISTICS XML é copiado durante a configuração para um diretório local no computador onde o Microsoft SQL Server está instalado. Pode ser encontrado na unidade que contém os ficheiros 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 Exposição também pode ser encontrado neste site.

SET STATISTICS PROFILE e SET STATISTICS XML são equivalentes um do outro. O primeiro produz saída textual; este último produz saída XML. Em versões futuras do SQL Server, a nova informação do plano de execução da consulta só será apresentada através da instrução SET STATISTICS XML, e não da instrução SET STATISTICS PROFILE.

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.

Permissions

Para usar SET STATISTICS XML e visualizar a saída, os utilizadores devem ter as seguintes permissões:

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

  • Permissão SHOWPLAN em todas as bases de dados que contenham objetos referenciados pelas instruções Transact-SQL.

Para Transact-SQL instruções que não produzem conjuntos de resultados STATISTICS XML, apenas são necessárias as permissões adequadas para executar as instruções Transact-SQL. Para Transact-SQL instruções que produzam conjuntos de resultados STATISTICS XML, as verificações tanto da permissão de execução da Transact-SQL como da permissão SHOWPLAN devem ter sucesso, caso contrário a execução da Transact-SQL instrução é abortada e nenhuma informação do Showplan é gerada.

Examples

As duas instruções que se seguem utilizam as definições SET STATISTICS XML para mostrar a forma como o SQL Server analisa e otimiza o uso de índices em consultas. A primeira consulta utiliza o operador de comparação Equals (=) na cláusula WHERE numa coluna indexada. A segunda consulta usa o operador LIKE na cláusula WHERE. Isto obriga o SQL Server a usar uma varredura de índice em cluster para encontrar os dados que satisfazem a condição da cláusula WHERE. Os valores nos atributos EstimateRows e EstimatedTotalSubtreeCost são menores para a primeira consulta indexada, indicando que foi processada muito mais rapidamente e usou menos recursos do 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  

Ver também

Definir SHOWPLAN_XML (Transact-SQL)
sqlcmd Utility (Utilitário sqlcmd)