Performance

監控 SQL Server 儲存過程延遲

  • September 8, 2018

在 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(以微秒為單位)顯示完成執行列出的每個儲存過程的平均經過時間。

引用自:https://dba.stackexchange.com/questions/217040