Sqlserver查詢死鎖及殺死死鎖的方法


-- 查詢死鎖
select    
    request_session_id spid,   
    OBJECT_NAME(resource_associated_entity_id) tableName    
from    
    sys.dm_tran_locks   
where    
    resource_type='OBJECT'

殺死死鎖進程:

kill spid
--例如
kill 354 

創造死鎖條件:

執行事務鎖定表(增刪改操作),事務外執行查詢操作,模擬死鎖

BEGIN TRANSACTION--開始事務

update   CM_Code  set CodeCount=1  where id='34'

WAITFOR DELAY '02:00'; 
select * from CM_Code where id='34'

執行查詢死鎖的語句:

select    
    request_session_id spid,   
    OBJECT_NAME(resource_associated_entity_id) tableName    
from    
    sys.dm_tran_locks   
where    
    resource_type='OBJECT'

得到如下結果:

執行殺死死鎖的加腳本如下:

kill 56 

這樣就解除了死鎖

@陳卧龍的博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM