SET STATISTICS IO (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Får SQL Server att visa information om mängden fysisk och logisk IO-aktivitet som genereras av Transact-SQL-satser. Fysisk IO är relaterat till att komma åt datasidor på disk och logisk IO är relaterat till att komma åt datasidor i minnet (datacache).

Transact-SQL syntaxkonventioner

Syntax

SET STATISTICS IO { ON | OFF }

Utgång

Följande tabell listar och beskriver utdata.

Utdata Meaning
Table Tabellens namn.
Scan count Antal sökningar eller skanningar som startades efter att ha nått bladnivån i någon riktning för att hämta alla värden och konstruera den slutliga datamängden för utdatan.

Scan-antalet är 0 om indexet som används är ett unikt index eller klustrat index på en primärnyckel och du söker bara ett värde. Till exempel WHERE Primary_Key_Column = <value>.
Scan-räkningen är 1 när du söker efter ett värde med ett icke-unikt klustrat index definierat på en kolumn utan primärnyckel. Denna process görs för att kontrollera dubbletter av nyckelvärdet du söker efter. Till exempel WHERE Clustered_Index_Key_Column = <value>.
Scancount är N när N är antalet olika sökningar eller skanningar som startas mot vänster eller höger sida på bladnivå efter att ett nyckelvärde har lokaliserats med indexnyckeln.
logical reads Antal sidor lästa från datacachen.
physical reads Antal sidor lästa från disk.
page server reads Antal sidor lästa från sidservrar. **
read-ahead reads Antal sidor placerade i cachen av frågan, via läs-framåt.
page server read-ahead reads Antal sidor lästa från sidservrar och placerade i datacachen av frågan, via läs-framåt. **
lob logical reads Antal LOB*-sidor som läses från datacachen.
lob physical reads Antal LOB*-sidor lästa från disken.
lob page server reads Antal LOB*-sidor lästa från sidservrar. **
lob read-ahead reads Antal LOB*-sidor placerade i datacachen av frågan, via läs-framåt.
lob page server read-ahead reads Antal LOB*-sidor lästa från sidservrar och placerade i datacachen av frågan, via läsningen framåt. **

* Stora objektbinärdata (LOB) datatyper inkluderar text, ntext, bild, varchar(max),nvarchar(max),varbinary(max) eller kolumnlagringsindexsidor.

** Icke-noll för endast Azure SQL Database Hyperscale.

Anmärkningar

När STATISTICS IO är PÅ visas statistisk information, och när den är AV visas inte informationen.

Efter att detta alternativ är satt PÅ returnerar alla Transact-SQL satser den statistiska informationen tills alternativet ställs till AV.

Inställningen av SET STATISTICS IO är satt vid exekverings- eller körtid och inte vid parsetid.

Anmärkning

När Transact-SQL satser hämtar LOB-kolumner kan vissa LOB-återvinningsoperationer kräva att man går igenom LOB-trädet flera gånger. Detta kan göra att SET STATISTICS IO rapporterar högre än förväntade logiska läsningar.

Permissions

För att använda SET STATISTICS IO, måste användare ha lämpliga behörigheter för att köra Transact-SQL-satsen. SHOWPLAN-tillståndet krävs inte.

Examples

Detta exempel visar hur många logiska och fysiska läsningar som används av SQL Server när den bearbetar satserna.

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

Här är meddelandeutgången:

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.