Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa itu PROFIL STATISTIK di SQL Server?

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Impor / Ekspor database dengan SQL Server Server Management Studio

  2. Bagaimana CAST() Bekerja di SQL Server

  3. String split T-SQL berdasarkan pembatas

  4. Kembalikan Hak Istimewa Tabel dari Server Tertaut di SQL Server (Contoh T-SQL)

  5. SQL Server 2016:Cadangkan Database