SET SET STATISTICS XML (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de données SQL dans Microsoft Fabric

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

Le réglage de SETSET STATISTICS XML est fixé à l’exécution ou à l’exécution et non au temps de l’analyse.

Lorsque SETSET STATISTICS XML c’est ACTIVÉ, SQL Server renvoie les informations d’exécution de chaque instruction après son exécution. 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 que SETSET STATISTICS XML cela ne doit pas être la seule instruction dans un lot.

SET SET STATISTICS XML renvoie la sortie sous forme de nvarchar(max) pour des applications, telles que 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 SET STATISTICS XML renvoie les informations sous forme d’un ensemble de documents XML. Chaque instruction après l’instruction SETSET STATISTICS XML ON est reflétée dans la sortie par un seul document. 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 contenant le schéma XML pour la sortie XML par SETSET STATISTICS XML est copié lors de la configuration 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 SET STATISTICS PROFILE et SETSET STATISTICS XML sont des équivalents l’un de l’autre. La première instruction génère une sortie de texte et la seconde une sortie XML. Dans les versions futures de SQL Server, les nouvelles informations du plan d’exécution de requêtes ne seront affichées que par l’instructionSETSET STATISTICS XML, et non par l’instructionSETSET STATISTICS PROFILE.

Notes

Si Inclure le plan d’exécution actuel est sélectionné dans SQL Server Management Studio, cette SET option ne produit pas de sortie XML Showplan. Effacez le bouton Inclure le plan d’exécution réel avant d’utiliser cette SET option.

Autorisations

Pour utiliser SETSET STATISTICS XML et visualiser la sortie, les utilisateurs doivent disposer 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.

Pour Transact-SQL instructions qui ne produisent STATISTICS XML pas d’ensembles de résultats, seules les permissions appropriées pour exécuter les Transact-SQL sont requises. Pour Transact-SQL instructions qui produisent STATISTICS XML des ensembles de résultats, les vérifications à la fois de la permission d’exécution de la Transact-SQL instruction et de la permission SHOWPLAN doivent réussir, sinon l’exécution de l’instruction Transact-SQL est annulée et aucune information Showplan n’est générée.

Exemples

Les deux instructions qui suivent utilisent les SETSET STATISTICS XML paramètres 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