SET STATISTICS XML (Transact-SQL)
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é.
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 plan d'exécution de requêtes (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.
[!REMARQUE]
Si Inclure le plan d'exécution réel est activée dans SQL Server Management Studio, cette option SET ne produit pas de sortie Showplan XML. Désactivez la case à cocher Inclure le plan d'exécution réel avant d'utiliser cette option SET.
Autorisations
Pour utiliser SET STATISTICS XML et afficher la sortie, les utilisateurs doivent bénéficier des autorisations suivantes :
Autorisations adéquates pour exécuter les instructions Transact-SQL.
Autorisation SHOWPLAN sur toutes les bases de données contenant des objets référencés par les instructions Transact-SQL.
Pour les instructions Transact-SQL qui ne génèrent pas de jeux de résultats STATISTICS XML, seules les autorisations appropriées pour exécuter les instructions Transact-SQL sont nécessaires. Pour les instructions Transact-SQL qui génèrent des jeux de résultats STATISTICS XML, les vérifications concernant l'autorisation d'exécution des instructions Transact-SQL et l'autorisation SHOWPLAN doivent être toutes deux positives sans quoi l'exécution de l'instruction Transact-SQL est annulée et aucune information Showplan n'est créée.
Pour plus d'informations, consultez Sécurité Showplan et Autorisation SHOWPLAN et traitements Transact-SQL.
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, indiquant qu'elle a été traitée plus rapidement et qu'elle a utilisé moins de ressources que la requête non indexée.
USE AdventureWorks;
GO
SET STATISTICS XML ON;
GO
-- First query.
SELECT EmployeeID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT EmployeeID, Title
FROM HumanResources.Employee
WHERE Title LIKE 'Production%';
GO
SET STATISTICS XML OFF;
GO