[SQL SERVER][Maintain]使用Profiler擷取死結資訊
SQL Server的Lock Manager會依照需求,決定如何鎖定資料,
以便確保多人使用時不會造成資料錯誤問題,但Lock不是本篇介紹重點,所以也不詳細討論。
本篇將介紹如何使用Profiler來擷取死結資訊,我先來簡單說一下死結是什麼?
SQL Server會依照請求的順序,處理每個交易作業所需資源。
若有兩個處理鎖定了資源,又互相等待對方釋放資源,以便後續處理,這時就形成死結(無止盡的等待)。
這時Lock Manager會自動刪除其中一項回復成本較低者的Process,以便結束死結。
預先開啟Profiler準備擷取死結相關資訊。
死結狀況模擬
更新t1資料表某一row
更新t2資料表某一row,並查詢t1資料表
回頭再查詢t2資料表某一row
SSMS查詢視窗顯示1205錯誤訊息。
Profiler擷取deadlock相關資訊
當然你也可以存成檔案,以利後續調校使用。
參考