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 và 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ệnhCommands 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
Là 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ể.