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.

Notes

Si l’option STATISTICS IO est activée, les informations statistiques sont affichées et, si l’option est désactivée, ces 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 tableau ci-dessous répertorie et décrit les éléments de sortie.

Élément de sortie Signification
Table Nom de la table.
Nombre d’analyses 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 quand N correspond au nombre de recherches ou d’analyses différentes à gauche ou à droite au niveau feuille après avoir recherché une valeur de clé à l’aide de la clé d’index.
Lectures logiques Nombre de pages lues à partir du cache de données.
Lectures physiques Nombre de pages lues depuis le disque.
Lectures anticipées Nombre de pages placées dans le cache pour la requête.
Lectures logiques LOB Nombre de pages lues à partir du cache de données. Inclut les pages d’index columnstore, text, ntext, image, varchar(max), nvarchar(max) et varbinary(max).
Lectures physiques LOB Nombre de pages lues depuis le disque. Inclut les pages d’index columnstore, text, ntext, image, varchar(max), nvarchar(max) et varbinary(max).
Lectures anticipées LOB Nombre de pages placées dans le cache pour la requête. Inclut les pages d’index columnstore, text, ntext, image, varchar(max), nvarchar(max) et varbinary(max).

L'option SET STATISTICS IO est définie lors de l'exécution, et non pas durant l'analyse.

Notes

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. L'option SET STATISTICS IO peut alors signaler un nombre de lectures logiques plus élevé que prévu.

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 l'ensemble de résultats obtenu :

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.  

Voir aussi

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