SET STATISTICS IO (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Fa sì che SQL Server visualizzi informazioni sulla quantità dell'attività di I/O a livello fisico e logico generata dalle istruzioni Transact-SQL. L'I/O fisico è correlato all'accesso alle pagine di dati su disco, mentre l'I/O logico è correlato all'accesso alle pagine di dati in memoria (cache dei dati).

Convenzioni di sintassi Transact-SQL

Sintassi

  
SET STATISTICS IO { ON | OFF }  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Osservazioni:

Quando STATISTICS IO è impostato su ON, le informazioni statistiche vengono visualizzate, mentre quando è impostato su OFF le informazioni non vengono visualizzate.

Quando questa opzione viene impostata su ON, tutte le istruzioni Transact-SQL restituiscono le informazioni statistiche fino a quando l'opzione non viene impostata su OFF.

Nella tabella seguente viene visualizzato un elenco di elementi di output e la relativa descrizione.

Elemento di output Significato
Tabella Nome della tabella.
Scan count Numero di ricerche o analisi avviate dopo aver raggiunto il livello foglia in qualsiasi direzione per recuperare tutti i valori al fine di costruire il set di dati finale per l'output.

Il conteggio analisi è 0 se l'indice usato è un indice univoco o cluster in una chiave primaria e se si sta cercando un solo valore. Ad esempio: WHERE Primary_Key_Column = <value>.

Il conteggio analisi è 1 quando si cerca un valore usando un indice cluster non univoco definito in una colonna chiave non primaria. Questo processo viene eseguito per verificare la presenza di valori duplicati per il valore di chiave che si sta cercando. Ad esempio: WHERE Clustered_Index_Key_Column = <value>.

Il conteggio analisi è N quando N è il numero delle diverse ricerche o analisi avviate sul lato sinistro o destro al livello foglia dopo aver individuato un valore di chiave usando la chiave dell'indice.
logical reads Numero di pagine lette dalla cache dei dati.
physical reads Numero di pagine lette dal disco.
read-ahead reads Numero di pagine inserite nella cache per la query.
lob logical reads Numero di pagine lette dalla cache dei dati. Include text, ntext, image, varchar(max), nvarchar(max), varbinary(max) o pagine di indice columnstore.
lob physical reads Numero di pagine lette dal disco. Include text, ntext, image, varchar(max), nvarchar(max), varbinary(max) o pagine di indice columnstore.
lob read-ahead reads Numero di pagine inserite nella cache per la query. Include text, ntext, image, varchar(max), nvarchar(max), varbinary(max) o pagine di indice columnstore.

L'opzione SET STATISTICS IO viene impostata in fase di esecuzione, non in fase di analisi.

Nota

Durante il recupero di colonne LOB da parte di istruzioni Transact-SQL, alcune operazioni di recupero possono richiedere più volte l'attraversamento dell'albero LOB. Per questo motivo SET STATISTICS IO può segnalare un numero di letture logiche superiore al previsto.

Autorizzazioni

Per usare l'opzione SET STATISTICS IO, gli utenti devono avere le autorizzazioni appropriate per eseguire l'istruzione Transact-SQL. L'autorizzazione SHOWPLAN non è necessaria.

Esempi

In questo esempio viene illustrato il numero di operazioni di lettura logiche e fisiche usate da SQL Server per l'elaborazione delle istruzioni.

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

Set di risultati:

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.  

Vedi anche

Istruzioni edizione Standard T (Transact-SQL)
edizione Standard T SHOWPLAN_ALL (Transact-SQL)
edizione Standard T STATISTICS TIME (Transact-SQL)