SET STATISTICS XML (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Force Microsoft SQL Server à exécuter des instructions Transact-SQL et à générer des informations détaillées sur l'exécution de ces instructions, sous la forme d'un document XML correctement formé.

Conventions de la syntaxe Transact-SQL

Syntaxe

  
SET STATISTICS XML { ON | OFF }  

Notes

La définition de SET STATISTICS XML s'effectue au moment de l'exécution, et non au moment de l'analyse.

Lorsque SET STATISTICS XML a la valeur ON, SQL Server retourne des informations d'exécution sur chaque instruction exécutée. Une fois cette option activée, des informations sur toutes les instructions Transact-SQL consécutives sont retournées, jusqu'à ce que l'option soit désactivée (OFF). Notez qu'un traitement peut comporter d'autres instructions en plus de SET STATISTICS XML.

SET STATISTICS XML retourne une sortie de type nvarchar(max) pour des applications, par exemple l’utilitaire sqlcmd, où la sortie XML est ensuite utilisée par d’autres outils pour afficher et traiter les informations du plan de requête.

SET STATISTICS XML retourne des informations sous la forme de documents XML. Chaque instruction qui suit l'instruction SET STATISTICS XML ON est reflétée dans la sortie par un document unique. Chaque document contient le texte de l'instruction, suivi des détails des étapes de l'exécution. La sortie présente des informations d'exécution tels que les coûts, les index utilisés et les types d'opérations effectués, l'ordre de jointure, le nombre d'exécutions d'une opération physique, le nombre de lignes produites par chaque opérateur physique, etc.

Le document qui contient le schéma XML pour la sortie XML générée par SET STATISTICS XML est copié au cours de l'installation dans un répertoire local de l'ordinateur sur lequel Microsoft SQL Server est installé. Il est situé sur le lecteur contenant les fichiers d'installation de SQL Server à l'adresse :

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

Le schéma Showplan est également disponible sur ce site web.

SET STATISTICS PROFILE et SET STATISTICS XML sont complémentaires. La première instruction génère une sortie de texte et la seconde une sortie XML. Dans les versions ultérieures de SQL Server, les nouvelles informations du plan d'exécution de requête ne seront affichées qu'avec l'instruction SET STATISTICS XML, pas avec l'instruction SET STATISTICS PROFILE.

Notes

Si l’option Inclure le plan d’exécution réel est sélectionnée dans SQL Server Management Studio, cette option SET ne produit aucune sortie de la représentation au format XML. Désactivez l’option Inclure le plan d’exécution réel avant d’utiliser l’option SET.

Autorisations

Pour utiliser SET STATISTICS XML et afficher la sortie, les utilisateurs doivent bénéficier des autorisations suivantes :

  • Autorisations appropriées pour exécuter les instructions Transact-SQL ;

  • Autorisation SHOWPLAN sur toutes les bases de données contenant des objets auxquels les instructions Transact-SQL font référence.

En cas d'instructions Transact-SQL ne générant aucun jeu de résultats STATISTICS XML, seules les autorisations adéquates pour exécuter les instructions Transact-SQL s'avèrent nécessaires. En cas d'instructions Transact-SQL ne générant pas de jeu de résultats STATISTICS XML, les autorisations d'exécution d'instructions Transact-SQL et SHOWPLAN doivent être vérifiées et validées, ou l'exécution des instructions Transact-SQL est abandonnée et aucune information de représentation n'est générée.

Exemples

Les deux instructions suivantes utilisent les paramètres SET STATISTICS XML pour montrer comment SQL Server analyse et optimise l'utilisation des index dans les requêtes. La première requête utilise l'opérateur de comparaison Égal à (=) dans la clause WHERE sur une colonne indexée. La seconde requête utilise l'opérateur LIKE dans la clause WHERE. Cela oblige SQL Server à utiliser une analyse d'index cluster pour rechercher les données répondant à la condition spécifiée par la clause WHERE. Les valeurs des attributs EstimateRows et EstimatedTotalSubtreeCost sont moins élevées pour la première requête indexée, ce qui indique qu’elle a été traitée plus rapidement et qu’elle a utilisé moins de ressources que la requête non indexée.

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  

Voir aussi

SET SHOWPLAN_XML (Transact-SQL)
Utilitaire sqlcmd