Partager via


SET STATISTICS IO (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Force SQL Server à afficher des informations sur la quantité d’activités E/S logiques et physiques générées par les instructions Transact-SQL. L’E/S physique est lié à l’accès aux pages de données sur le disque et à l’E/S logique est liée à l’accès aux pages de données en mémoire (cache de données).

Conventions de la syntaxe Transact-SQL

Syntaxe

SET STATISTICS IO { ON | OFF }

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Sortie

Le tableau ci-dessous répertorie et décrit les éléments de sortie.

Élément de sortie Signification
Table Nom de la table.
Scan count Nombre de recherches ou d’analyses démarrées après avoir atteint le niveau feuille dans n’importe quelle direction afin de récupérer toutes les valeurs pour construire le dataset final de la sortie.

Le nombre d’analyses est 0 si l’index utilisé est un index unique ou un index cluster sur une clé principale et que vous recherchez une seule valeur. Par exemple : WHERE Primary_Key_Column = <value>.
Le nombre d’analyses est 1 quand vous recherchez une valeur à l’aide d’un index cluster non unique défini sur une colonne clé non primaire. Ce processus permet de rechercher les valeurs en double de la valeur de clé que vous recherchez. Par exemple : WHERE Clustered_Index_Key_Column = <value>.
Le nombre d’analyses est N lorsqu’il s’agit du nombre de recherches ou d’analyses différentes démarrées vers la gauche ou la droite au niveau feuille après avoir localisé une valeur de clé à l’aide de la clé d’index.
logical reads Nombre de pages lues à partir du cache de données.
physical reads Nombre de pages lues depuis le disque.
page server reads Nombre de pages lues à partir de serveurs de pages. **
read-ahead reads Nombre de pages placées dans le cache par la requête, via la lecture anticipée.
page server read-ahead reads Nombre de pages lues à partir de serveurs de pages et placées dans le cache de données par la requête, via la lecture anticipée. **
lob logical reads Nombre de pages LOB* lues à partir du cache de données.
lob physical reads Nombre de pages LOB* lues à partir du disque.
lob page server reads Nombre de pages métier* lues à partir de serveurs de pages. **
lob read-ahead reads Nombre de pages métier* placées dans le cache de données par la requête, via la lecture anticipée.
lob page server read-ahead reads Nombre de pages métier* lues à partir de serveurs de pages et placées dans le cache de données par la requête, via la lecture anticipée. **

* Les types de données binaires d’objets volumineux (LOB) incluent du texte, ntext, image, varchar(max), nvarchar(max), varbinary(max)ou des pages d’index columnstore.

** Non zéro pour Azure SQL Database Hyperscale uniquement.

Notes

Lorsqu’il STATISTICS IO s’agit d’ON, les informations statistiques sont affichées, et quand off, les informations ne sont pas affichées.

Une fois l’option activée, toutes les instructions Transact-SQL retournent les informations statistiques jusqu’à ce que l’option soit désactivée.

Le paramètre est défini au moment de SET STATISTICS IO l’exécution ou de l’exécution et non au moment de l’analyse.

Remarque

Lorsque des instructions Transact-SQL extraient des colonnes LOB, certaines opérations d'extraction peuvent entraîner le parcours de l'arbre LOB à de multiples reprises. Cela peut entraîner l’état d’E/S SET STATISTICS supérieur aux lectures logiques attendues.

Autorisations

Pour utiliser SET STATISTICS IO, les utilisateurs doivent disposer des autorisations appropriées pour exécuter l’instruction Transact-SQL. L’autorisation SHOWPLAN n’est pas nécessaire.

Exemples

L'exemple suivant illustre comment de nombreuses lectures logiques et physiques sont utilisées par SQL Server, durant le traitement d'instructions.

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

Voici la sortie du message :

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.