Tôi đang khắc phục các sự cố về hiệu suất trên quy trình được lưu trữ nhiều tầng trong SQL Server. Tôi muốn biết phần nào tôi nên dành thời gian trên.
Tôi hiểu từ Làm cách nào để đọc Chi phí truy vấn và luôn luôn là phần trăm? rằng ngay cả khi SSMS được yêu cầu bao gồm Kế hoạch thực hiện thực tế , số liệu "Chi phí truy vấn (so với lô)" vẫn dựa trên ước tính chi phí , có thể khác xa với thực tế
Tôi hiểu từ Đo lường Hiệu suất Truy vấn: Kế hoạch Thực hiện Truy vấn Chi phí Truy vấn so với Thời gian Thực hiện mà tôi có thể bao quanh việc gọi thủ tục được lưu trữ bằng các SET STATISTICS TIME
câu lệnh và sau đó tôi sẽ nhận được một danh sách như thế này trong Messages
khung:
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 1 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
[etc]
SQL Server Execution Times:
CPU time = 187 ms, elapsed time = 206 ms.
với một thông điệp đầu ra cho mỗi câu lệnh.
Tôi có thể 'dễ dàng' (mặc dù không thuận tiện) liên kết đầu ra thống kê thời gian với các kế hoạch thực thi câu lệnh trong ngăn kế hoạch Thực thi, bằng cách đếm chúng: Đầu SQL Server Execution Times
ra thông báo thứ tư tương ứng Query 4
trong ngăn kế hoạch Thực thi, v.v.
Nhưng có cách nào tốt hơn không?
Duration
vàCPU
kết quả là thực tế chứ không phải ước tính, đúng không?