Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

HỒ SƠ THỐNG KÊ trong SQL Server là gì?

Trong SQL Server, bạn có thể sử dụng SET STATISTICS PROFILE để hiển thị thông tin hồ sơ cho một câu lệnh T-SQL.

STATISTICS PROFILE hoạt động cho các truy vấn đặc biệt, chế độ xem và các thủ tục được lưu trữ.

Khi STATISTICS PROFILE được đặt thành ON , mỗi truy vấn được thực thi trả về tập kết quả thông thường của nó, theo sau là tập kết quả bổ sung hiển thị hồ sơ về việc thực thi truy vấn.

Ví dụ

Đây là một ví dụ đơn giản để chứng minh.

SET STATISTICS PROFILE ON;
GO

SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO

Kết quả:

Điều này trả về các cột giống như SHOWPLAN_ALL trả về cộng với hai phụ ( Hàng Thực thi cột).

Ảnh chụp màn hình đó được chụp khi tôi chạy câu lệnh đó trong Azure Data Studio.

Đây là một ví dụ đơn giản khác, lần này tôi chạy một câu lệnh trong mssql-cli (giao diện dòng lệnh).

SET STATISTICS PROFILE ON;
GO

SELECT * FROM Cats;
GO

Kết quả (sử dụng đầu ra dọc):

Các lệnh
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.

Cách tắt tính năng này

Để chuyển STATISTICS PROFILE tắt, chỉ cần chạy lại bằng cách sử dụng OFF thay vì ON :

SET STATISTICS PROFILE OFF;
GO

STATISTICS PROFILE Không được dùng nữa?

Mặc dù tài liệu hiện tại không đề cập đến nó, SET STATISTICS PROFILE dường như đã được lên lịch để ngừng sử dụng trong các phiên bản chương trình trong tương lai.

Theo bài viết MSDN cũ này, SET STATISTICS PROFILE được lên lịch để ngừng sử dụng trong các phiên bản chương trình trong tương lai và bạn nên sử dụng SET STATISTICS XML thay vào đó.

Ngoài ra, tài liệu hiện tại cho SET STATISTICS XML hỗ trợ điều này:

LẬP HỒ SƠ THỐNG KÊ và ĐẶT THỐNG KÊ XML là bản sao của nhau. Trước đây tạo ra đầu ra dạng văn bản; cái sau tạo ra đầu ra XML. Trong các phiên bản tương lai của SQL Server, thông tin kế hoạch thực thi truy vấn mới sẽ chỉ được hiển thị thông qua câu lệnh SET STATISTICS XML, không phải câu lệnh SET STATISTICS PROFILE.

Do đó, có thể phải trả phí khi sử dụng SET STATISTICS XML thay vì SET STATISTICS PROFILE nếu có thể.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu các thay đổi sau khi chỉnh sửa bảng trong SQL Server Management Studio

  2. Hồ sơ truy vấn 101 - Có, nó thực sự có thể cải thiện hiệu suất máy chủ SQL của bạn

  3. Giúp hiệu suất SQL Server dễ dàng

  4. Triển khai LocalDB trên PC khách

  5. Khắc phục “tên hồ sơ không hợp lệ” khi gửi thư từ máy chủ SQL