Di SQL Server, Anda dapat menggunakan SET STATISTICS PROFILE
pernyataan untuk menampilkan informasi profil untuk pernyataan T-SQL.
STATISTICS PROFILE
berfungsi untuk kueri ad hoc, tampilan, dan prosedur tersimpan.
Kapan STATISTICS PROFILE
disetel ke ON
, setiap kueri yang dieksekusi mengembalikan kumpulan hasil regulernya, diikuti oleh kumpulan hasil tambahan yang menunjukkan profil eksekusi kueri.
Contoh
Berikut adalah contoh sederhana untuk ditunjukkan.
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Hasil:
Ini mengembalikan kolom yang sama dengan SHOWPLAN_ALL
pengembalian ditambah dua tambahan (Baris dan Dijalankan kolom).
Tangkapan layar itu diambil saat saya menjalankan pernyataan itu di Azure Data Studio.
Berikut contoh sederhana lainnya, kali ini saya menjalankan pernyataan di mssql-cli (antarmuka baris perintah).
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats;
GO
Hasil (menggunakan keluaran vertikal):
Commands completed successfully. +---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | Meow | | 2 | Fluffy | | 3 | Scratch | +---------+-----------+ (3 rows affected) -[ RECORD 1 ]------------------------- Rows | 3 Executes | 1 StmtText | SELECT * FROM Cats StmtId | 1 NodeId | 1 Parent | 0 PhysicalOp | NULL LogicalOp | NULL Argument | NULL DefinedValues | NULL EstimateRows | 3 EstimateIO | NULL EstimateCPU | NULL AvgRowSize | NULL TotalSubtreeCost | 0.0032853 OutputList | NULL Warnings | NULL Type | SELECT Parallel | 0 EstimateExecutions | NULL -[ RECORD 2 ]------------------------- Rows | 3 Executes | 1 StmtText | |--Clustered Index Scan(OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F])) StmtId | 1 NodeId | 2 Parent | 1 PhysicalOp | Clustered Index Scan LogicalOp | Clustered Index Scan Argument | OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F]) DefinedValues | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName] EstimateRows | 3 EstimateIO | 0.003125 EstimateCPU | 0.0001603 AvgRowSize | 142 TotalSubtreeCost | 0.0032853 OutputList | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName] Warnings | NULL Type | PLAN_ROW Parallel | 0 EstimateExecutions | 1 (2 rows affected) Commands completed successfully.
Cara Mematikannya
Untuk mengubah STATISTICS PROFILE
off, jalankan lagi menggunakan OFF
bukannya ON
:
SET STATISTICS PROFILE OFF;
GO
Apakah STATISTICS PROFILE
Tidak digunakan lagi?
Meskipun dokumentasi saat ini tidak menyebutkannya, SET STATISTICS PROFILE
tampaknya dijadwalkan untuk dihentikan di versi showplan mendatang.
Menurut artikel MSDN lama ini, SET STATISTICS PROFILE
dijadwalkan untuk dihentikan di versi showplan mendatang, dan disarankan agar Anda menggunakan SET STATISTICS XML
sebagai gantinya.
Juga, dokumentasi saat ini untuk SET STATISTICS XML
mendukung ini:
SET STATISTICS PROFILE dan SET STATISTICS XML adalah rekanan satu sama lain. Yang pertama menghasilkan keluaran tekstual; yang terakhir menghasilkan keluaran XML. Di versi SQL Server yang akan datang, informasi rencana eksekusi kueri baru hanya akan ditampilkan melalui pernyataan XML SET STATISTICS, bukan pernyataan SET STATISTICS PROFILE.
Oleh karena itu, mungkin ada gunanya menggunakan SET STATISTICS XML
alih-alih SET STATISTICS PROFILE
jika memungkinkan.