Performance
監控 SQL Server 儲存過程延遲
在 SQL Server 2016 中擷取 SQL Server 儲存過程延遲的最佳方法是什麼?
計劃是創建一個 SSRS 報告並將其發送給管理層。我們還啟用了查詢儲存。
非常感謝
儲存過程執行統計數據通過
sys.dm_exec_procedure_stats
動態管理視圖顯示。此查詢將顯示目前數據庫中儲存過程的統計資訊:
SELECT ObjectName = s.name + N'.' + o.name , sps.last_execution_time , sps.execution_count , sps.last_elapsed_time , sps.total_elapsed_time , avg_elapsed_time = sps.total_elapsed_time / sps.execution_count FROM sys.dm_exec_procedure_stats sps INNER JOIN sys.objects o ON sps.object_id = o.object_id INNER JOIN sys.schemas s ON o.schema_id = s.schema_id WHERE sps.database_id = DB_ID() ORDER BY s.name , o.name;
輸出如下所示:
╔══════════════════════════════════╦═════════════════════════╦═════════════════╦═══════════════════╦════════════════════╦══════════════════╗ ║ ObjectName ║ last_execution_time ║ execution_count ║ last_elapsed_time ║ total_elapsed_time ║ avg_elapsed_time ║ ╠══════════════════════════════════╬═════════════════════════╬═════════════════╬═══════════════════╬════════════════════╬══════════════════╣ ║ dbo.procAccessUniqueID ║ 2018-09-07 13: 21: 04.403 ║ 173346 ║ 614 ║ 223886470 ║ 1291 ║ ║ dbo.procAddBatchClassFilter ║ 2018-09-04 15:25:22.150 ║ 43 ║ 5124 ║ 171329 ║ 3984 ║ ║ dbo.procAddBatchFilter ║ 2018-09-06 15:04:34.817 ║ 17 ║ 251 ║ 18767 ║ 1103 ║ ║ dbo.procAddLock2 ║ 2018-09-07 13:21:05.047 ║ 373086 ║ 912 ║ 542911271 ║ 1455 ║ ║ dbo.procAddTempUser_V10 ║ 2018-09-07 10:50:13.973 ║ 4 ║ 292 ║ 1223 ║ 305 ║ ║ dbo.procAddUserGroupRelationship ║ 2018-09-07 13:14:49.533 ║ 1124 ║ 70 ║ 151824 ║ 135 ║ ╚══════════════════════════════════╩═════════════════════════╩═════════════════╩═══════════════════╩════════════════════╩══════════════════╝
avg_elapsed_time(以微秒為單位)顯示完成執行列出的每個儲存過程的平均經過時間。