sql最簡單查死鎖 sql server中怎樣查詢引起死鎖的sql語句?
sql server中怎樣查詢引起死鎖的sql語句?當(dāng)死鎖發(fā)生后,通過服務(wù)端的Trace就可以將死鎖信息傳到日志。在SQL Server 2000時代,只能通過Trace flag 1204來開啟,由
sql server中怎樣查詢引起死鎖的sql語句?
當(dāng)死鎖發(fā)生后,通過服務(wù)端的Trace就可以將死鎖信息傳到日志。在SQL Server 2000時代,只能通過Trace flag 1204來開啟,由于Trace flag 1204并不能提供XML死鎖圖,在SQL Server 2005以及之后的版本被Trace flag 1222所取代。 為了在服務(wù)端針對所有的Session開啟Trace flag 1222??梢酝ㄟ^如代碼所示。DBCC TRACEON(1222,-1)另一種方法是開啟Profiler來捕捉,Profiler捕捉到的圖示死鎖信息內(nèi)容就更直觀了,
sql server中怎樣查詢引起死鎖的sql語句?
elect0,blockedfrom(select*fromsysprocesseswhereblocked>0)awherenotexists(select*from(select*fromsysprocesseswhereblocked>0)bwherea.blocked=spid)unionselectspid,blockedfromsysprocesseswhereblocked>0OPENs_curFETCHNEXTFROMs_curINTO@spid,@blWHILE@@FETCH_STATUS=0beginif@spid=0select"引起數(shù)據(jù)庫死鎖的是:" CAST(@blASVARCHAR(10)) "進程號,其執(zhí)行的SQL語法如下"elseselect"進程號SPID:" CAST(@spidASVARCHAR(10)) "被" "進程號SPID:" CAST(@blASVARCHAR(10)) "阻塞,其當(dāng)前進程執(zhí)行的SQL語法如下"DBCCINPUTBUFFER(@bl)