Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
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 }
Output
Die folgende Tabelle enthält eine Auflistung der Ausgabeelemente sowie entsprechende Beschreibungen.
| Ausgabeelement | Bedeutung |
|---|---|
Table |
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.
Version-Leseausgabe
Gilt für: Azure SQL-Datenbank und SQL-Datenbank in Microsoft Fabric
Wenn eine Anweisung frühere Versionen von Zeilen aus einem Versionsspeicher liest, folgt auf die I/O-Ausgabe eine Zeile für jedes Objekt, das mindestens eine Version gelesen hat. Ein Versionslesen erfolgt jedes Mal, wenn die Datenbank-Engine eine frühere Version einer Zeile in einer Versionskette untersucht, um die für die Anweisung sichtbare Version zu finden. Für weitere Informationen siehe Version Read Metrics.
| Ausgabeelement | Bedeutung |
|---|---|
Object |
Schema-qualifizierter Name der Tabelle oder der indexierten Ansicht. |
Tempdb versions read |
Anzahl der Zeilenversionen, die aus dem Versionsspeicher in gelesen werden tempdb. |
In-row PVS versions read |
Anzahl der Zeilenversionen, die aus dem persistenten Versionsspeicher (PVS) gelesen werden und in der Datenzeile gespeichert sind. |
Off-row PVS versions read |
Anzahl der Zeilenversionen, die aus der internen PVS-Tabelle außerhalb der Reihe abgelesen werden. |
Online index PVS versions read |
Anzahl der Zeilenversionen, die aus der internen PVS-Tabelle gelesen werden, während eine Online-Indexoperation läuft. |
Versionslesungen sind Zahlen der Zeilenversionen, nicht Seitenzahlen.
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, SETSET STATISTICS IO dass höhere als erwartete logische Lesungen gemeldet werden.
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.
Hinweis
In Azure SQL-Datenbank und SQL Database in Microsoft Fabric ist die Anweisung USE nicht verfügbar. Stattdessen verbinden Sie sich direkt mit der vorgesehenen Datenbank und führen Sie den Rest des Codebeispiels aus.
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.
In der Azure SQL-Datenbank und der SQL-Datenbank in Microsoft Fabric enthält die Ausgabe, wenn die Anweisung Zeilenversionen liest, für jedes Objekt mit Versionslesungen auch eine Versionslesezeile. Zum Beispiel zeigt die folgende Zeile, dass die Anweisung beim Lesen der Production.ProductCostHistory Tabelle 1.000 Zeilenversionen aus der externen PVS-internen Tabelle vorgelesen hat:
Object '[Production].[ProductCostHistory]'. Tempdb versions read 0, in-row PVS versions read 0,
off-row PVS versions read 1000, online index PVS versions read 0.