Freigeben über


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.

Output

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

Ausgabeelement Bedeutung
Table Der Name der Tabelle.
Scan count 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 die Anzahl der verschiedenen Suchvorgänge oder Scans ist, die auf der Blattebene nach dem Suchen eines Schlüsselwerts mithilfe des Indexschlüssels auf der linken oder rechten Seite gestartet wurden.
logical reads Anzahl der aus dem Datencache gelesenen Seiten
physical reads Anzahl der vom Datenträger gelesenen Seiten
page server reads Anzahl der Seiten, die von Seitenservern gelesen werden. **
read-ahead reads Die Anzahl der Seiten, die durch die Abfrage im Cache platziert werden, über den Lese-/Vorlesevorgang.
page server read-ahead reads Die Anzahl der Seiten, die von Seitenservern gelesen und durch die Abfrage in den Datencache versetzt werden, über den Vorlesen. **
lob logical reads Die Anzahl der lob*-Seiten, die aus dem Datencache gelesen werden.
lob physical reads Anzahl der lob*-Seiten, die vom Datenträger gelesen werden.
lob page server reads Anzahl der LOB*-Seiten, die von Seitenservern gelesen werden. **
lob read-ahead reads Die Anzahl der lob*-Seiten, die in den Datencache der Abfrage über den Lese-/Vorlesevorgang eingefügt werden.
lob page server read-ahead reads Die Anzahl der lob*-Seiten, die von Seitenservern gelesen und in den Datencache der Abfrage über den Lese-/Vorlesevorgang eingefügt werden. **

* Datentypen für große Objekte (Lob) umfassen Text, ntext, Image, varchar(max), nvarchar(max), varbinary(max) oder Spaltenspeicherindexseiten.

** Nicht Null nur für Azure SQL-Datenbank Hyperscale.

Hinweise

Wenn STATISTICS IO aktiviert ist, werden statistische Informationen angezeigt, und wenn AUS, 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 Einstellung wird SET STATISTICS IO zur Ausführung oder Laufzeit 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. Dies kann dazu führen, dass SET STATISTICS IO höher als erwartet logische Lesevorgänge meldet.

Berechtigungen

Zur Verwendung SET STATISTICS IOmüssen Benutzer über die entsprechenden 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  

Dies ist die Nachrichtenausgabe:

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