sqlserver查看死鎖記錄 sql server中怎樣查詢引起死鎖的sql語句?
sql server中怎樣查詢引起死鎖的sql語句?elect0,blockedfrom(select*fromsysprocesseswhereblocked>0)awherenotexists
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)) "進(jìn)程號(hào),其執(zhí)行的SQL語法如下"elseselect"進(jìn)程號(hào)SPID:" CAST(@spidASVARCHAR(10)) "被" "進(jìn)程號(hào)SPID:" CAST(@blASVARCHAR(10)) "阻塞,其當(dāng)前進(jìn)程執(zhí)行的SQL語法如下"DBCCINPUTBUFFER(@bl)
怎樣查詢引起死鎖的sql語句?
elect 0 ,blocked from (select * from sysprocesses where blocked>0 ) a where not exists(select * from (select * from sysprocesses where blocked>0 ) b where a.blocked=spid) union select spid,blocked from sysprocesses where blocked>0 OPEN s_cur FETCH NEXT FROM s_cur INTO @spid,@bl WHILE @@FETCH_STATUS = 0 begin if @spid =0select " 引起數(shù)據(jù)庫死鎖的是: " CAST(@bl AS VARCHAR(10)) " 進(jìn)程號(hào), 其執(zhí)行的SQL 語法如下" elseselect " 進(jìn)程號(hào)SPID :" CAST(@spid AS VARCHAR(10)) " 被" " 進(jìn)程號(hào)SPID :" CAST(@bl AS VARCHAR(10)) " 阻塞, 其當(dāng)前進(jìn)程執(zhí)行的SQL 語法如下" DBCC INPUTBUFFER (@bl )
sql server中怎樣查詢引起死鎖的sql語句?
當(dāng)死鎖發(fā)生后,通過服務(wù)端的Trace就可以將死鎖信息傳到日志。在SQL Server 2000時(shí)代,只能通過Trace flag 1204來開啟,由于Trace flag 1204并不能提供XML死鎖圖,在SQL Server 2005以及之后的版本被Trace flag 1222所取代。 為了在服務(wù)端針對(duì)所有的Session開啟Trace flag 1222??梢酝ㄟ^如代碼所示。DBCC TRACEON(1222,-1)另一種方法是開啟Profiler來捕捉,Profiler捕捉到的圖示死鎖信息內(nèi)容就更直觀了,