Udostępnij za pomocą


USTAW STATYSTYKI IO (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Powoduje, że SQL Server wyświetla informacje o ilości fizycznej i logicznej aktywności IO generowanej przez Transact-SQL instrukcje. Fizyczne IO wiąże się z dostępem do stron danych na dysku, a logiczne IO z dostępem do stron danych w pamięci (data cache).

Transact-SQL konwencje składni

Składnia

SET STATISTICS IO { ON | OFF }

Wynik

Poniższa tabela wymienia i opisuje elementy wyjściowe.

Pozycja wyjściowa Meaning
Table Nazwa tabeli.
Scan count Liczba wyszukiwań lub skanów rozpoczętych po osiągnięciu poziomu liścia w dowolnym kierunku, aby pobrać wszystkie wartości i skonstruować ostateczny zbiór danych dla wyjścia.

Liczba skanów wynosi 0, jeśli używany indeks jest unikalnym lub klastrowanym indeksem klucza głównego i szukasz tylko jednej wartości. Na przykład WHERE Primary_Key_Column = <value>.
Liczba skanów wynosi 1, gdy szukasz jednej wartości za pomocą nieunikalnego klastrowanego indeksu zdefiniowanego na kolumnie klucza głównego. Proces ten polega na sprawdzeniu zduplikowanych wartości dla wartości klucza, której szukasz. Na przykład WHERE Clustered_Index_Key_Column = <value>.
Liczba skanów wynosi N, gdy N to liczba różnych poszukiwań lub skanów rozpoczętych po lewej lub prawej stronie na poziomie liścia po zlokalizowaniu wartości klucza za pomocą klucza indeksowego.
logical reads Liczba stron odczytanych z pamięci podręcznej.
physical reads Liczba stron odczytanych z dysku.
page server reads Liczba stron czytanych z serwerów stron. **
read-ahead reads Liczba stron umieszczonych w pamięci podręcznej przez zapytanie poprzez read-ahead.
page server read-ahead reads Liczba stron odczytanych z serwerów stron i umieszczanych w pamięci podręcznej danych przez zapytanie poprzez read-ahead. **
lob logical reads Liczba stron LOB* odczytanych z pamięci podręcznej danych.
lob physical reads Liczba stron LOB* odczytanych z dysku.
lob page server reads Liczba stron LOB* odczytanych z serwerów stron. **
lob read-ahead reads Liczba stron LOB* umieszczanych w pamięci podręcznej danych przez zapytanie, poprzez read-ahead.
lob page server read-ahead reads Liczba stron LOB* odczytanych z serwerów stron i umieszczanych w pamięci podręcznej danych przez zapytanie poprzez proces odczytu przed odczytem. **

* Duże typy danych obiektów binarnych (LOB) obejmują tekst, ntext, obraz, varchar(max),nvarchar(max),varbinary(max) lub strony indeksu columnstore.

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

Uwagi

Gdy STATISTICS IO jest włączone, wyświetlane są informacje statystyczne, a gdy jest wyłączone, nie są wyświetlane.

Po ustawieniu tej opcji wszystkie Transact-SQL instrukcje zwracają dane statystyczne, aż opcja zostanie ustawiona na WYŁĄCZONE.

Ustawienie jest SET STATISTICS IO ustawione na czas wykonania lub działania, a nie na czas parsowania.

Uwaga / Notatka

Gdy Transact-SQL instrukcje pobierają kolumny LOB, niektóre operacje pobierania LOB mogą wymagać wielokrotnego przejścia przez drzewo LOB. Może to powodować, że SET STATISTICS IO będzie raportować wyższe niż oczekiwano odczyty logiczne.

Permissions

Aby używać SET STATISTICS IO, użytkownicy muszą posiadać odpowiednie uprawnienia do wykonania instrukcji Transact-SQL. Nie jest wymagane pozwolenie SHOWPLAN.

Przykłady

Ten przykład pokazuje, ile odczytów logicznych i fizycznych jest wykorzystywanych przez SQL Server podczas przetwarzania instrukcji.

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

Oto wyjście wiadomości:

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.