SET STATISTICS IO (Transact-SQL)

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

Bewirkt, dass SQL Server Informationen zum Umfang der physischen und logischen E/A-Aktivitäten anzeigt, die durch Transact-SQL-Anweisungen generiert werden. Physische E/A bezieht sich auf den Zugriff auf Datenseiten auf Datenträger, und die logische E/A auf Datenseiten im Arbeitsspeicher (Datencache).

Transact-SQL-Syntaxkonventionen

Syntax

  
SET STATISTICS IO { 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

Wenn STATISTICS IO auf ON festgelegt ist, werden statistische Informationen angezeigt. Bei OFF werden die Informationen nicht angezeigt.

Wenn diese Option auf ON festgelegt wird, geben alle Transact-SQL-Anweisungen so lange statistische Informationen zurück, bis die Option auf OFF festgelegt wird.

Die folgende Tabelle enthält eine Auflistung der Ausgabeelemente sowie entsprechende Beschreibungen.

Ausgabeelement Bedeutung
Table Der Name der Tabelle.
Scananzahl Die Anzahl von Suchen oder Scans, die nach Erreichen der Blattebene in beliebiger Richtung gestartet wurden, um alle Werte zum Erstellen des letzten Datasets für die Ausgabe abzurufen.

Die Scananzahl beträgt „0“ (null), wenn der verwendete Index ein eindeutiger Index oder ein gruppierter Index für eine Primärschlüsselspalte ist und Sie nur einen Wert suchen. Beispiel: WHERE Primary_Key_Column = <value>.

Die Scananzahl beträgt „1“, wenn Sie anhand eines nicht eindeutig gruppierten Index, der für eine Nicht-Primärschlüsselspalte definiert ist, nach einem Wert suchen. Auf diese Weise wird nach doppelten Werten eines Schlüsselwerts gesucht, der als Suchwert verwendet wird. Beispiel: WHERE Clustered_Index_Key_Column = <value>.

Die Scananzahl ist „N“, wenn „N“ der Anzahl unterschiedlicher Suchen oder Scans entspricht, die auf der Blattebene nach links oder rechts gestartet wurden, nachdem ein Schlüsselwert anhand des Indexschlüssels ermittelt wurde.
Logische Lesevorgänge Anzahl der aus dem Datencache gelesenen Seiten
Physische Lesevorgänge Anzahl der vom Datenträger gelesenen Seiten
Read-Ahead-Lesevorgänge Anzahl der Seiten, die für die Abfrage im Cache platziert wurden
Logische LOB-Lesevorgänge Anzahl der aus dem Datencache gelesenen Seiten Umfasst text, ntext, image, varchar(max), nvarchar(max), varbinary(max) oder Columnstore-Indexseiten.
Physische LOB-Lesevorgänge Anzahl der vom Datenträger gelesenen Seiten Umfasst text, ntext, image, varchar(max), nvarchar(max), varbinary(max) oder Columnstore-Indexseiten.
Read-Ahead-LOB-Lesevorgänge Anzahl der Seiten, die für die Abfrage im Cache platziert wurden Umfasst text, ntext, image, varchar(max), nvarchar(max), varbinary(max) oder Columnstore-Indexseiten.

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

Hinweis

Wenn Transact-SQL-Anweisungen LOB-Spalten abrufen, kann es vorkommen, dass bestimmte LOB-Abrufvorgänge die LOB-Struktur mehrere Male durchlaufen müssen. Dadurch meldet SET STATISTICS IO möglicherweise mehr logische Lesevorgänge als erwartet.

Berechtigungen

Zum Verwenden von SET STATISTICS IO müssen Benutzer über entsprechende Berechtigungen zum Ausführen der Transact-SQL-Anweisung verfügen. Die SHOWPLAN-Berechtigung ist nicht erforderlich.

Beispiele

In diesem Beispiel wird gezeigt, wie viele logische und physische Lesevorgänge SQL Server während der Verarbeitung der Anweisungen verwendet.

USE AdventureWorks2022;  
GO         
SET STATISTICS IO ON;  
GO  
SELECT *   
FROM Production.ProductCostHistory  
WHERE StandardCost < 500.00;  
GO  
SET STATISTICS IO OFF;  
GO  

Im Folgenden wird das Resultset aufgeführt:

Table 'ProductCostHistory'. Scan count 1, logical reads 5, physical   
reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0,   
lob read-ahead reads 0.  

Weitere Informationen

SET-Anweisungen (Transact-SQL)
SET SHOWPLAN_ALL (Transact-SQL)
SET STATISTICS TIME (Transact-SQL)