死鎖監控一直都很麻煩,我沒有找到很好的方法
如果大家有好的方法,我也很想學習一下
我的方法比較簡單:
1.sp_altermessage 1205 修改1205 錯誤讓他能夠寫入日志 這樣 代理中的警告才能使用
2.當然是啟動 代理中的警告。開資料庫郵件,會把死鎖錯誤發送到操作員郵箱裡面。缺點就是沒有詳細的死鎖資訊。
3.使用sql server 2008 r2 自帶的 擴充事件中system_health預設是開啟的,裡面會抓取比較多的值
你可以使用 sys.dm_xe_session_events 聯合 sys.dm_xe_sessions 檢視 抓取了那些值 當然其中一個是死鎖資訊。
當産生死鎖的時候你何以使用:
查詢所有的死鎖資訊,當然如果出現記憶體瓶頸的時候能儲存多久我不确定,如果死鎖太多你無法順利的找到,你想把結果減少一點,可以在每次查詢死鎖後使用:
關閉并打開這個擴充事件的session,那麼儲存在記憶體的記錄就會被清空。下次的死鎖資訊就是最新的。