1. 程式人生 > >SQL SERVER 查找鎖信息

SQL SERVER 查找鎖信息

sts 使用 過程 div sql 執行 soci where group

通過系統的存儲過程 sp_who 或 sp_who2 可以查找出所有的鎖信息, 但是看不出是哪個表, 什麽語句

當使用 sp_who 或 sp_who2 查找鎖信息的時候, 有個 spid 信息, 可以通過下面的語句查出相應的語句

DBCC INPUTBUFFER (spid)

使用這個語句, 不一定能查出信息, 能查出來, 就是執行的語句, 也有說這個是查死鎖語句的。

下面語句查死鎖數

select blocked
from (select * from sys.sysprocesses where  blocked>0 ) a 
where not exists(select * from (select * from sys.sysprocesses where  blocked>0 ) b 
where a.blocked=spid)

 

使用下面的語句, 可以查找出哪些表被鎖,以及被鎖的次數

select tablename, COUNT(*) CNT from (
	select   request_session_id   spid,OBJECT_NAME(resource_associated_entity_id) tableName   
	from   sys.dm_tran_locks where resource_type=‘OBJECT‘
) aa group by tableName
order by CNT desc

SQL SERVER 查找鎖信息