2020年11月2日 星期一

SQL Server Stored Procedure 使用率問題 最後一次SP執行時間

 

SQL Server Stored Procedure 使用率問題 最後一次SP執行時間


情境

最近公司要轉移DB
要將沒有在使用的SP刪除
所以上網查詢了一些方法
最後決定使用SP最後一次執行時間
來判斷此SP是否還有作用



主要使用語法為下列
SELECT
       DB_NAME(s.database_ID),
          o.name,
          o.type,
          s.last_execution_time,
          s.type_desc,
          s.execution_count
FROM sys.dm_exec_procedure_stats s
INNER JOIN sys.objects o ON s.object_id = o.object_id
--WHERE s.database_ID > 4  --Database Name
AND o.type = 'P'
--AND o.name LIKE ('%%')  --Object Name
ORDER BY s.last_execution_time DESC



可是有關於MDSN 
dm_exec_procedure_stats 此表的說明如下
傳回快取預存程序的彙總效能統計資料。 此檢視會針對每個快取預存程序計畫傳回一個資料列,而且資料列的存留期間與預存程序維持快取狀態的時間一樣長。 從快取中移除預存程序時,對應的資料列也會從這個檢視中刪除。 此時,就會引發效能統計資料 SQL 追蹤事件 (與 sys.dm_exec_query_stats 很相似)。
MDSN 的說明我不太了解預存程序維持快取釋放的時機點




所以我特別上網查詢這些情況下可能會造成預存程序維持快取釋放
所以關於使用dm_exec_procedure_stats 要特別注意的部分

* a unit test that executed a whole slew of procedures, filling up the cache
* an sp_configure change, which - for certain options - has a side effect of clearing the procedure cache
* a single query with a huge memory grant
* a manual DBCC FREEPROCCACHE;
* explicit recompiles or drop/re-create of procedures

* 執行整個過程的單元測試,填滿緩存
* 一項sp_configure更改(對於某些選項而言)具有清除過程緩存的副作用
* 具有大量內存的單個查詢
* 手冊 DBCC FREEPROCCACHE;
* 顯式重新編譯或刪除/重新創建過程



就依照以上的說明來說還是沒有辦法一次就知道所有SP的使用情況
所以日常的監控就變得異常的重要
也是這次讓我更加深刻的了解
少年不努力老大徒傷悲 大誤
所以平常的監控還是很重要的並不是要使用才開始進行
SQL PASS 的前輩們說的很棒 Jason Chen:做監控蒐集資料呀 可以更了解系統運行狀況 也可以知道資料成長狀況 問題排除 或是做後續的架構擴充 及維護計畫 環環相扣的



SQL PASS 群組詢問後獲得了一些寶貴的建議整理

  • 處理SP時 備份 > rename > Drop
  • 可以再多搭配System Dynamic Management Views(DVM) 中的 (EX.sys.sysprocesses, sys.dm_exec_requests... ) 來完善日常監控
  • 平時就要完善監控DB情況跟照顧身體健康一樣重要要從日常做起不要痛了才要醫治



最後非常感謝熱心的 SQL PASS 的前輩們~



補充






參考

SQL PASS 社群留言討論

sys.dm_exec_procedure_stats missing history?

MSDN(sys.dm_exec_procedure_stats (Transact-SQL))


沒有留言:

張貼留言

解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題

  解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題 環境 Server:Windows Server 2012 R2 Debug IDE: VS2019 Step1 確認是否有安裝Microsoft Access Dat...