SET SET STATISTICS IO (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureDatabase SQL in Microsoft Fabric

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 relative alla sintassi Transact-SQL

Sintassi

SET STATISTICS IO { ON | OFF }

Output

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

Elemento di output significato
Table 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 numero di analisi è N quando N è il numero di ricerca o analisi diverse avviate verso sinistra o destra a livello foglia dopo aver individuato un valore di chiave usando la chiave di indice.
logical reads Numero di pagine lette dalla cache dei dati.
physical reads Numero di pagine lette dal disco.
page server reads Numero di pagine lette dai server di pagine. **
read-ahead reads Numero di pagine inserite nella cache dalla query, tramite read-ahead.
page server read-ahead reads Numero di pagine lette dai server di pagine e inserite nella cache dei dati dalla query tramite read-ahead. **
lob logical reads Numero di pagine LOB* lette dalla cache dei dati.
lob physical reads Numero di pagine LOB* lette dal disco.
lob page server reads Numero di pagine LOB* lette dai server di pagine. **
lob read-ahead reads Numero di pagine LOB* inserite nella cache dei dati dalla query, tramite read-ahead.
lob page server read-ahead reads Numero di pagine LOB* lette dai server di pagine e inserite nella cache dei dati dalla query, tramite read-ahead. **

* I tipi di dati LOB (Large Object Binary) includono le pagine text, ntext, image, varchar(max), nvarchar(max), varbinary(max)o columnstore index.

** Non zero solo per database SQL di Azure Hyperscale.

Output di lettura della versione

Si applica a: Database SQL di Azure e database SQL in Microsoft Fabric

Se una sentenza legge versioni precedenti di righe da uno store versioni, l'output I/O è seguito da una riga per ogni oggetto che ha almeno una versione letta. Una versione viene letta ogni volta che il motore di database esamina una versione precedente di una riga in una catena di versioni per trovare quella visibile all'affermazione. Per maggiori informazioni, vedi Metriche di lettura delle versioni.

Elemento di output significato
Object Nome qualificato per schema della tabella o della vista indicizzata.
Tempdb versions read Numero di versioni di righe lette dal record di versioni in tempdb.
In-row PVS versions read Numero di versioni di righe lette dallo store di versioni persistenti (PVS) che vengono memorizzate nella riga dati.
Off-row PVS versions read Numero di versioni di righe lette dalla tabella interna PVS off-row.
Online index PVS versions read Numero di versioni di righe lette dalla tabella interna PVS utilizzata mentre è in esecuzione un'operazione di indicizzazione online.

Le letture delle versioni sono conteggi delle versioni delle righe, non conteggi delle pagine.

Osservazioni:

Quando STATISTICS IO è ATTIVATO, vengono visualizzate informazioni statistiche e, quando 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.

L'impostazione di viene impostata in fase di SET STATISTICS IO esecuzione o in fase di esecuzione e 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. Questo può portare SETSET STATISTICS IO a riportare letture logiche superiori alle aspettative.

Autorizzazioni

Per usare SET STATISTICS IO, gli utenti devono disporre delle 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.

Nota

In database SQL di Azure e SQL database in Microsoft Fabric, l'USEaffermazione non è disponibile. Invece, collegati direttamente al database previsto ed esegui il resto del campione di codice.

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

Ecco l'output del messaggio:

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 database SQL di Azure e SQL Database in Microsoft Fabric, se l'istruzione legge versioni righe, l'output include anche una riga di lettura versione per ogni oggetto con versioni read. Ad esempio, la riga seguente mostra che l'istruzione ha riportato 1.000 versioni a riga dalla tabella interna PVS off-row mentre leggeva la Production.ProductCostHistory tabella:

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.