Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Che cos'è STATISTICS IO in SQL Server?

In SQL Server è possibile utilizzare SET STATISTICS IO per generare informazioni dettagliate sulla quantità di attività del disco generata da un'istruzione T-SQL.

In strumenti grafici come SSMS e Azure Data Studio, puoi visualizzare queste informazioni nei Messaggi scheda.

Esempio

Ecco un semplice esempio da dimostrare.

SET STATISTICS IO ON;

SELECT 
    c.CityName, 
    s.StateProvinceName AS State, 
    c.LatestRecordedPopulation AS Population
FROM Application.Cities c
INNER JOIN Application.StateProvinces s
ON c.StateProvinceID = s.StateProvinceID
WHERE c.LatestRecordedPopulation > 2000000
ORDER BY c.LatestRecordedPopulation DESC;

Inizialmente, probabilmente vedrai i risultati della query come al solito:

Per visualizzare l'output di STATISTICS IO , fai clic su Messaggi scheda:

Questo esempio è stato eseguito in Azure Data Studio ed è lo stesso processo quando si usa SSMS. Tuttavia, i passaggi effettivi che devi utilizzare possono dipendere dallo strumento che utilizzi per connetterti a SQL Server.

Di seguito è riportata una copia di STATISTICS IO messaggio dallo screenshot sopra:

(6 rows affected)
Table 'Worktable'. Scan count 0, logical reads 0, 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.
Table 'Workfile'. Scan count 0, logical reads 0, 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.
Table 'StateProvinces'. Scan count 1, logical reads 2, 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.
Table 'Cities'. Scan count 1, logical reads 497, 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.
Total execution time: 00:00:00.027

Come spegnerlo

Impostazione di STATISTICS IO su ON influisce su tutte le istruzioni T-SQL successive finché non viene disattivata.

Per disattivarlo, eseguilo di nuovo usando OFF invece di ON :

SET STATISTICS IO OFF;