假如發生了死鎖,我們怎麼去檢測具體發生死鎖的是哪條sql語句或存儲過程?此時我們可以使用以下存儲過程來檢測,就可以查出引起死鎖的進程和sql語句.sql代碼?
- 情感問答
- 答案列表
死鎖查詢[朗讀]
execsp_lock快捷鍵c_2execsp_whoactiveexecsp_who快捷鍵c_1用profiler裡面的locks->deadlockgraph監控看看,如果看到了死鎖圖,就可以比較形象地展現死鎖。
--查詢出死鎖的spidselectblockedfrom(select*fromsysprocesseswhereblocked>0)awherenotexists(select*from(select*fromsysprocesseswhereblocked>0)bwherea.blocked=spid)。
為了查看死鎖信息,資料庫引擎提供了監視工具,分別為兩個跟蹤標誌以及sqlserverprofiler中的死鎖圖形事件.跟蹤標誌1204和跟蹤標誌1222發生死鎖時,跟蹤標誌。
declare@spidintdeclare@blkintdeclare@countintdeclare@indexintdeclare@@@errorif@count=0beginselect'沒有阻塞和死鎖信息'--return0endwhile@index<=。