SET STATISTICS XML (Transact-SQL)

Gilt für:yes SQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank

Bewirkt Microsoft SQL Server, dass Transact-SQL-Anweisungen ausführen und ausführliche Informationen darüber generieren, wie die Anweisungen in Form eines klar definierten XML-Dokuments ausgeführt wurden.

Topic link iconTransact-SQL-Syntaxkonventionen

Syntax

  
SET STATISTICS XML { ON | OFF }  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder 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, SQL Server Ausführungsinformationen für jede Anweisung zurück, nachdem sie ausgeführt wurde. Nachdem diese Option auf ON festgelegt wurde, werden Informationen zu allen nachfolgenden Transact-SQL-Anweisungen zurückgegeben, bis die Option auf OFF festgelegt ist. 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, das das XML-Schema für die XML-Ausgabe von SET STATISTICS XML enthält, wird während des Setups in ein lokales Verzeichnis auf dem Computer kopiert, auf dem Microsoft SQL Server installiert ist. Sie finden sie auf dem Laufwerk, das die SQL Server-Installationsdateien enthält, 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 zukünftigen Versionen von SQL Server werden neue Informationen zum Abfrageausführungsplan nur über die SET STATISTICS XML-Anweisung und nicht über die SET STATISTICS PROFILE-Anweisung angezeigt.

Hinweis

Wenn in der Option Tatsächlichen Ausführungsplan SQL Server Management Studio, erzeugt diese SET-Option keine XML-Showplanausgabe. 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:

  • Entsprechende Berechtigungen zum Ausführen der Transact-SQL-Anweisungen.

  • SHOWPLAN-Berechtigung für alle Datenbanken, die Objekte enthalten, auf die die Transact-SQL verweisen.

Für Transact-SQL-Anweisungen, die keine STATISTICS XML-Result Sets erzeugen, sind nur die entsprechenden Berechtigungen zum Ausführen der Transact-SQL erforderlich. Bei Transact-SQL-Anweisungen, die STATISTICS XML-Result Sets erzeugen, muss sowohl die Transact-SQL-Anweisungsausführungsberechtigung als auch die SHOWPLAN-Berechtigung erfolgreich ausgeführt werden, oder die Transact-SQL-Anweisungsausführung wird abgebrochen, und es werden keine Showplaninformationen generiert.

Beispiele

Die beiden folgenden Anweisungen verwenden die SET STATISTICS XML-Einstellungen, 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. Dies zwingt SQL Server, einen gruppierten Indexscan zu verwenden, um die Daten zu finden, die die WHERE-Klauselbedingung 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 AdventureWorks2012;  
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