Sql-Server

跟踪儲存過程使用情況

  • November 8, 2019

除了使用 SQL Server Profiler 之外,還有什麼方法可以跟踪正在使用哪些儲存過程,或者至少在它們最後一次執行時跟踪它們?

您可以查看計劃記憶體以很好地了解儲存過程的使用情況。以這個查詢為例:

select
   db_name(st.dbid) as database_name,
   object_name(st.objectid) as name,
   p.size_in_bytes / 1024 as size_in_kb,
   p.usecounts,
   st.text
from sys.dm_exec_cached_plans p
cross apply sys.dm_exec_sql_text(p.plan_handle) st
where p.objtype = 'proc'
and st.dbid = db_id('SomeDatabase')
order by p.usecounts desc

這將為您提供usecountsSomeDB.

注意:計劃記憶體包含執行計劃。保留這些計劃涉及許多因素。 雖然這會讓您很好地了解正在使用什麼以及使用頻率,但這絕對不是儲存過程的執行總數以及它們執行的頻率/時間。

關於計劃記憶體的 BOL 參考

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