Sdílet prostřednictvím


NASTAV STATISTIKY IO (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Způsobuje, že SQL Server zobrazuje informace o množství fyzické a logické IO aktivity generované Transact-SQL příkazy. Fyzický IO souvisí s přístupem k datovým stránkám na disku a logický IO s přístupem k datovým stránkám v paměti (datová cache).

Transact-SQL konvence syntaxe

Syntaxe

SET STATISTICS IO { ON | OFF }

Výstup

Následující tabulka uvádí a popisuje výstupní položky.

Výstupní položka Meaning
Table Název tabulky.
Scan count Počet vyhledávání nebo skenů zahájen po dosažení úrovně listu v libovolném směru, aby se získaly všechny hodnoty a vytvořila konečná datasada pro výstup.

Počet skenů je 0, pokud je použitý index unikátní nebo shlukový index na primárním klíči a hledáte pouze jednu hodnotu. Například: WHERE Primary_Key_Column = <value>.
Počet skenů je 1, když hledáte jednu hodnotu pomocí neunikátního shlukovaného indexu definovaného na sloupci neprimárního klíče. Tento proces slouží ke kontrole duplicitních hodnot klíčové hodnoty, kterou hledáte. Například: WHERE Clustered_Index_Key_Column = <value>.
Počet skenů je N, když N je počet různých vyhledávání nebo skenů zahájených směrem k levé nebo pravé straně na úrovni listu po nalezení klíčové hodnoty pomocí indexového klíče.
logical reads Počet stránek přečtených z datové cache.
physical reads Počet stránek přečtených z disku.
page server reads Počet stránek přečtených ze stránkovacích serverů. **
read-ahead reads Počet stránek vložených do cache dotazem prostřednictvím read-ahead.
page server read-ahead reads Počet stránek přečtených ze serverů stránek a vložených do datové cache dotazem prostřednictvím read-ahead. **
lob logical reads Počet LOB* stránek načtených z datové cache.
lob physical reads Počet LOB* stránek přečtených z disku.
lob page server reads Počet LOB* stránek přečtených ze stránkových serverů. **
lob read-ahead reads Počet LOB* stránek vložených dotazem do datové cache prostřednictvím read-ahead.
lob page server read-ahead reads Počet LOB* stránek přečtených ze stránkových serverů a vložených do datové cache dotazem prostřednictvím read-ahead. **

* Velké binární (LOB) datové typy zahrnují text, ntext, image, varchar(max),nvarchar(max),varbinary(max) nebo indexové stránky columnstore.

** Non-zero for Azure SQL Database Hyperscale only.

Poznámky

Když STATISTICS IO je zapnuto, zobrazí se statistické informace, a když je vypnuto, informace se nezobrazí.

Po nastavení této volby ON všechny Transact-SQL příkazy vracejí statistické informace, dokud není volba nastavena na VYPNUTO.

Nastavení je SET STATISTICS IO nastaveno při spuštění nebo běhu a ne při parse.

Poznámka:

Když Transact-SQL příkazy načítají sloupce LOB, některé operace získávání LOB mohou vyžadovat opakované procházení stromu LOB. To může způsobit, že SET STATISTICS IO bude hlásit vyšší než očekávané logické čtení.

Povolení

Pro použití SET STATISTICS IOmusí mít uživatelé příslušná oprávnění k vykonání Transact-SQL příkazu. Povolení od SHOWPLAN není potřeba.

Examples

Tento příklad ukazuje, kolik logických a fyzických čtení SQL Server využívá při zpracování příkazů.

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

Zde je výstup zprávy:

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.