Bagikan melalui


MENGATUR STATISTIK IO (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Menyebabkan SQL Server menampilkan informasi tentang jumlah aktivitas IO fisik dan logis yang dihasilkan oleh pernyataan T-SQL. IO fisik terkait dengan mengakses halaman data pada disk dan IO logis terkait dengan mengakses halaman data dalam memori (cache data).

Konvensi sintaks transact-SQL

Sintaksis

SET STATISTICS IO { ON | OFF }

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Output

Tabel berikut ini mencantumkan dan menjelaskan item output.

Item output Makna
Table Nama tabel.
Scan count Jumlah pencarian atau pemindaian dimulai setelah mencapai tingkat daun ke segala arah untuk mengambil semua nilai guna membangun himpunan data akhir untuk output.

Jumlah pemindaian adalah 0 jika indeks yang digunakan adalah indeks unik atau indeks berkluster pada kunci utama dan Anda hanya mencari satu nilai. Contohnya,WHERE Primary_Key_Column = <value>.
Jumlah pemindaian adalah 1 saat Anda mencari satu nilai menggunakan indeks berkluster non-unik yang ditentukan pada kolom kunci non-primer. Proses ini dilakukan untuk memeriksa nilai duplikat untuk nilai kunci yang Anda cari. Contohnya,WHERE Clustered_Index_Key_Column = <value>.
Jumlah pemindaian adalah N ketika N adalah jumlah pencarian atau pemindaian yang berbeda yang dimulai ke arah sisi kiri atau kanan pada tingkat daun setelah menemukan nilai kunci menggunakan kunci indeks.
logical reads Jumlah halaman yang dibaca dari cache data.
physical reads Jumlah halaman yang dibaca dari disk.
page server reads Jumlah halaman yang dibaca dari server halaman. **
read-ahead reads Jumlah halaman yang ditempatkan ke dalam cache oleh kueri, melalui read-ahead.
page server read-ahead reads Jumlah halaman yang dibaca dari server halaman dan ditempatkan ke dalam cache data oleh kueri, melalui read-ahead. **
lob logical reads Jumlah halaman LOB* yang dibaca dari cache data.
lob physical reads Jumlah halaman LOB* yang dibaca dari disk.
lob page server reads Jumlah halaman LOB* yang dibaca dari server halaman. **
lob read-ahead reads Jumlah halaman LOB* yang ditempatkan ke dalam cache data oleh kueri, melalui read-ahead.
lob page server read-ahead reads Jumlah halaman LOB* yang dibaca dari server halaman dan ditempatkan ke dalam cache data oleh kueri, melalui read-ahead. **

* Jenis data biner objek besar (LOB) termasuk teks, ntext, gambar, varchar(max), nvarchar(max), varbinary(max), atau halaman indeks penyimpan kolom.

** Non-nol hanya untuk Azure SQL Database Hyperscale.

Keterangan

Saat STATISTICS IO AKTIF, informasi statistik ditampilkan, dan saat NONAKTIF, informasi tidak ditampilkan.

Setelah opsi ini diatur AKTIF, semua pernyataan Transact-SQL mengembalikan informasi statistik hingga opsi diatur ke NONAKTIF.

Pengaturan SET STATISTICS IO diatur pada waktu eksekusi atau eksekusi dan bukan pada waktu penguraian.

Catatan

Ketika pernyataan Transact-SQL mengambil kolom LOB, beberapa operasi pengambilan LOB mungkin memerlukan melintasi pohon LOB beberapa kali. Hal ini dapat menyebabkan SET STATISTICS IO melaporkan bacaan logis yang lebih tinggi dari yang diharapkan.

Izin

Untuk menggunakan SET STATISTICS IO, pengguna harus memiliki izin yang sesuai untuk menjalankan pernyataan Transact-SQL. Izin SHOWPLAN tidak diperlukan.

Contoh

Contoh ini menunjukkan berapa banyak bacaan logis dan fisik yang digunakan oleh SQL Server saat memproses pernyataan.

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

Berikut adalah output pesan:

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.