Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O que é STATISTICS XML no SQL Server?


No SQL Server, você pode usar o SET STATISTICS XML para gerar informações detalhadas sobre como uma instrução T-SQL foi executada.

Esta informação é fornecida na forma de um documento XML bem formado.

Uma vez SET STATISTICS XML está definido como ON , cada instrução subsequente é refletida na saída por um único documento XML.

Cada documento XML contém o texto da instrução, seguido pelos detalhes das etapas de execução.

A saída mostra informações de tempo de execução, como custos, índices acessados ​​e tipos de operações executadas, ordem de junção, número de vezes que uma operação física é executada, número de linhas que cada operador físico produziu e muito mais.

Exemplo


Aqui está um exemplo simples para demonstrar.
SET STATISTICS XML ON;

SELECT 
    c.CityName, 
    s.StateProvinceName AS State, 
    c.LatestRecordedPopulation AS Population
FROM Application.Cities c
INNER JOIN Application.StateProvinces s
ON c.StateProvinceID = s.StateProvinceID
WHERE c.LatestRecordedPopulation > 2000000
ORDER BY c.LatestRecordedPopulation DESC;

Resultado:

Ao fazer isso usando uma ferramenta gráfica como SSMS ou Azure Data Studio (foto), você provavelmente verá um plano de consulta gráfico como o da captura de tela.

Nesse caso, você provavelmente poderá clicar em várias guias para ver os resultados reais, bem como outros dados estatísticos.

Veja o que acontece quando clico em Resultados aba:

Nesse caso, consigo ver os resultados reais, além de outra linha com o XML Showplan. Clicar nessa linha abre o documento XML em uma nova janela:

E aqui está o que acontece quando clico em Principais operações aba:

Como desativá-lo


Configurando STATISTICS XML para ON afeta todas as instruções T-SQL subsequentes até que seja desativado.

Para desativá-lo, basta executá-lo novamente usando OFF em vez de ON :
SET STATISTICS XML OFF;

STATISTICS XML Substitui STATISTICS PROFILE


De acordo com a documentação da Microsoft, SET STATISTICS XML deve ser usado em vez de SET STATISTICS PROFILE .

SET STATISTICS PROFILE e SET STATISTICS XML são equivalentes um do outro. O primeiro produz saída textual; o último produz saída XML. Em versões futuras do SQL Server, as novas informações do plano de execução de consulta serão exibidas apenas por meio da instrução SET STATISTICS XML, não pela instrução SET STATISTICS PROFILE.

ESTATÍSTICAS XML vs Incluir Plano de Execução Real


Se Incluir Plano de Execução Real está selecionado no SSMS, SET STATISTICS XML não produz saída XML Showplan. Limpe o Incluir plano de execução real botão antes de usar SET STATISTICS XML .