SET STATISTICS XML (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Bewirkt, dass Microsoft SQL Server Transact-SQL-Anweisungen ausführt und detaillierte Informationen zur Ausführung der Anweisungen in Form eines wohlgeformten XML-Dokuments generiert.

Transact-SQL-Syntaxkonventionen

Syntax

  
SET STATISTICS XML { ON | OFF }  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Hinweise

Die Einstellung von SET STATISTICS XML wird zur Ausführungszeit und nicht zur Analysezeit festgelegt.

Wenn SET STATISTICS XML auf ON festgelegt ist, gibt SQL Server Ausführungsinformationen für jede Anweisung nach deren Ausführung zurück. Nachdem diese Option auf ON festgelegt wurde, werden Informationen zu allen nachfolgenden Transact-SQL-Anweisungen zurückgegeben, bis die Option auf OFF festgelegt wird. SET STATISTICS XML muss nicht die einzige Anweisung in einem Batch sein.

SET STATISTICS XML gibt eine Ausgabe als nvarchar(max) für Anwendungen zurück, wie z.B. das Dienstprogramm sqlcmd, wobei die XML-Ausgabe nachfolgend von weiteren Tools für die Anzeige und Verarbeitung der Abfrageplaninformationen verwendet wird.

SET STATISTICS XML gibt Informationen als eine Gruppe von XML-Dokumenten zurück. Jede Anweisung nach der SET STATISTICS XML ON-Anweisung ist in der Ausgabe als einzelnes Dokument enthalten. Jedes Dokument enthält den Text der Anweisung, gefolgt von den Informationen zu den Ausführungsschritten. Die Ausgabe zeigt Laufzeitinformationen an, wie z. B. Kosten, zugegriffene Indizes und Typen der ausgeführten Vorgänge, Joinreihenfolge, Anzahl von Ausführungen eines physischen Vorgangs sowie die Anzahl der von einem physischen Operator erstellten Zeilen usw.

Das Dokument mit dem XML-Schema für die XML-Ausgabe von SET STATISTICS XML wird beim Setup in ein lokales Verzeichnis auf dem Computer kopiert, auf dem Microsoft SQL Server installiert ist. Es wird auf dem Laufwerk mit den SQL Server-Installationsdateien gespeichert unter:

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

Das Showplanschema kann auf dieser Website gefunden werden.

SET STATISTICS PROFILE und SET STATISTICS XML sind Gegenstücke zueinander. SET STATISTICS PROFILE erstellt Textausgaben, während SET STATISTICS XML XML-Ausgaben erstellt. In künftigen SQL Server-Versionen werden neue Informationen zum Abfrageausführungsplan nur mit der SET STATISTICS XML-Anweisung angezeigt, nicht mehr mit der SET STATISTICS PROFILE-Anweisung.

Hinweis

Wenn Tatsächlichen Ausführungsplan einschließen in SQL Server Management Studio ausgewählt ist, generiert diese SET-Option keine XML-Showplanausgabe mehr. Deaktivieren Sie das Kontrollkästchen Tatsächlichen Ausführungsplan einschließen, bevor Sie diese SET-Option verwenden.

Berechtigungen

Für die Verwendung von SET STATISTICS XML und die Anzeige der Ausgabe benötigen Benutzer die folgenden Berechtigungen:

  • Die Berechtigungen für die Ausführung der Transact-SQL-Anweisungen.

  • Die SHOWPLAN-Berechtigung für alle Datenbanken mit Objekten, auf die von den Transact-SQL-Anweisungen verwiesen wird.

Für Transact-SQL-Anweisungen, die keine STATISTICS XML-Resultsets erstellen, sind nur die entsprechenden Berechtigungen zum Ausführen der Transact-SQL-Anweisungen erforderlich. Für Transact-SQL-Anweisungen, die STATISTICS XML-Resultsets erstellen, müssen Überprüfungen sowohl für die Ausführungsberechtigung für Transact-SQL-Anweisungen als auch für die SHOWPLAN-Berechtigung erfolgreich sein. Andernfalls wird die Ausführung der Transact-SQL-Anweisungen abgebrochen, und es werden keine Showplaninformationen generiert.

Beispiele

In den beiden folgenden Anweisungen werden die SET STATISTICS XML-Einstellungen verwendet, um zu zeigen, wie SQL Server die Verwendung von Indizes in Abfragen analysiert und optimiert. In der ersten Abfrage wird der Vergleichsoperator Gleich (=) in der WHERE-Klausel auf eine indizierte Spalte angewendet. In der zweiten Abfrage wird der LIKE-Operator in der WHERE-Klausel verwendet. Deshalb muss SQL Server eine Überprüfung des gruppierten Index ausführen und die Daten finden, die die Bedingung in der WHERE-Klausel erfüllen. Die Werte in den Attributen EstimateRows und EstimatedTotalSubtreeCost sind bei der ersten indizierten Abfrage kleiner, was auf eine deutlich schnellere Verarbeitung und die Verwendung weniger Ressourcen als bei der nicht indizierten Abfrage hinweist.

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  

Weitere Informationen

SET SHOWPLAN_XML (Transact-SQL)
SQLCMD-Hilfsprogramm