sqlserver-查詢存儲過程最后執行情況


最近系統進行重構,有大量的存儲過程無法判斷是否使用,剛好找到了一下sql,可以起到輔助作用,注意只是輔助作用,看下面解釋

sys.dm_exec_procedure_stats,返回緩存存儲過程的聚合性能統計信息。 該視圖為每個緩存的存儲過程計划都返回一行,行的生存期與存儲過程保持緩存狀態的時間一樣長。 在從緩存中刪除存儲過程時,也將從該視圖中刪除對應行。所以他只是代表緩存中的執行情況,並不能說明歷史以來的情況,不過我覺得影響不到,如果沒有緩存,豈不是代表最近從來沒有使用過?

# 第一步
SELECT database_id, *
FROM sys.databases
WHERE database_id > 4;
#第二步
SELECT a.name                AS 存儲過程名稱,
       a.create_date         AS 創建日期,
       a.modify_date         AS 修改日期,
       b.cached_time         AS 緩存時間,
       b.last_execution_time AS 最后執行日期,
       b.execution_count     AS 執行次數
FROM sys.procedures a
       LEFT JOIN sys.dm_exec_procedure_stats b ON a.object_id = b.object_id AND b.database_id = '替換第一步獲取到的id'
WHERE a.is_ms_shipped = 0
ORDER BY b.execution_count desc

參考文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM