sql server中如何查看被死鎖的表和進程

--查看被鎖表:

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

--解鎖:

declare @spid int
Set @spid = 71 --鎖表進程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)

--查詢出死鎖的SPID

select 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)

--查死鎖進程

select dbid,* from sys.sysprocesses
where 1=1
--and spid >50
and blocked <> 0

--查看死鎖的語句

dbcc inputbuffer(56)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章