MENGATUR XML STATISTIK (Transact-SQL)
Berlaku untuk: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Menyebabkan Microsoft SQL Server menjalankan pernyataan Transact-SQL dan menghasilkan informasi terperinci tentang bagaimana pernyataan dijalankan dalam bentuk dokumen XML yang ditentukan dengan baik.
Sintaksis
SET STATISTICS XML { ON | OFF }
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Keterangan
Pengaturan SET STATISTICS XML diatur pada jalankan atau run time dan bukan pada waktu penguraian.
Saat SET STATISTICS XML AKTIF, SQL Server mengembalikan informasi eksekusi untuk setiap pernyataan setelah menjalankannya. Setelah opsi ini diatur AKTIF, informasi tentang semua pernyataan Transact-SQL berikutnya dikembalikan hingga opsi diatur ke NONAKTIF. Perhatikan bahwa SET STATISTICS XML tidak perlu menjadi satu-satunya pernyataan dalam batch.
SET STATISTICS XML mengembalikan output sebagai nvarchar(max) untuk aplikasi, seperti utilitas sqlcmd , di mana output XML kemudian digunakan oleh alat lain untuk menampilkan dan memproses informasi rencana kueri.
SET STATISTICS XML mengembalikan informasi sebagai sekumpulan dokumen XML. Setiap pernyataan setelah pernyataan SET STATISTICS XML ON tercermin dalam output oleh satu dokumen. Setiap dokumen berisi teks pernyataan, diikuti dengan detail langkah-langkah eksekusi. Output menunjukkan informasi run-time seperti biaya, indeks yang diakses, dan jenis operasi yang dilakukan, urutan gabungan, berapa kali operasi fisik dilakukan, jumlah baris yang dihasilkan setiap operator fisik, dan banyak lagi.
Dokumen yang berisi skema XML untuk output XML oleh SET STATISTICS XML disalin selama penyiapan ke direktori lokal di komputer tempat Microsoft SQL Server diinstal. Ini dapat ditemukan pada drive yang berisi file penginstalan SQL Server, di:
\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
Skema Showplan juga dapat ditemukan di situs Web ini.
ATUR PROFIL STATISTIK dan SET STATISTICS XML adalah rekan satu sama lain. Yang pertama menghasilkan output tekstual; yang terakhir menghasilkan output XML. Dalam versi SQL Server yang akan datang, informasi rencana eksekusi kueri baru hanya akan ditampilkan melalui pernyataan SET STATISTICS XML, bukan pernyataan SET STATISTICS PROFILE.
Catatan
Jika Sertakan Rencana Eksekusi Aktual dipilih di SQL Server Management Studio, opsi SET ini tidak menghasilkan output Xml Showplan. Kosongkan tombol Sertakan Rencana Eksekusi Aktual sebelum menggunakan opsi SET ini.
Izin
Untuk menggunakan SET STATISTICS XML dan melihat output, pengguna harus memiliki izin berikut:
Izin yang sesuai untuk menjalankan pernyataan Transact-SQL.
Izin SHOWPLAN pada semua database yang berisi objek yang dirujuk oleh pernyataan Transact-SQL.
Untuk pernyataan Transact-SQL yang tidak menghasilkan kumpulan hasil XML STATISTIK, hanya izin yang sesuai untuk menjalankan pernyataan Transact-SQL yang diperlukan. Untuk pernyataan Transact-SQL yang menghasilkan kumpulan hasil XML STATISTIK, pemeriksaan untuk izin eksekusi pernyataan Transact-SQL dan izin SHOWPLAN harus berhasil, atau eksekusi pernyataan Transact-SQL dibatalkan dan tidak ada informasi Showplan yang dihasilkan.
Contoh
Dua pernyataan yang mengikuti menggunakan pengaturan SET STATISTICS XML untuk memperlihatkan cara SQL Server menganalisis dan mengoptimalkan penggunaan indeks dalam kueri. Kueri pertama menggunakan operator perbandingan Equals (=) dalam klausa WHERE pada kolom terindeks. Kueri kedua menggunakan operator LIKE dalam klausa WHERE. Ini memaksa SQL Server untuk menggunakan pemindaian indeks berkluster untuk menemukan data yang memenuhi kondisi klausa WHERE. Nilai dalam atribut EstimateRows dan EstimatedTotalSubtreeCost lebih kecil untuk kueri terindeks pertama yang menunjukkan bahwa itu diproses jauh lebih cepat dan menggunakan lebih sedikit sumber daya daripada kueri yang tidak diindeks.
USE AdventureWorks2022;
GO
SET STATISTICS XML ON;
GO
-- First query.
SELECT BusinessEntityID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE JobTitle LIKE 'Production%';
GO
SET STATISTICS XML OFF;
GO