--檢視鎖資訊
create table #t(req_spid int,obj_name sysname)
declare @s nvarchar(4000)
,@rid int,@dbname sysname,@id int,@objname sysname
declare tb cursor for
select distinct req_spid,dbname=db_name(rsc_dbid),rsc_objid
from master..syslockinfo where rsc_type in(4,5)
open tb
fetch next from tb into @rid,@dbname,@id
while @@fetch_status=0
begin
set @s='select @objname=name from ['+@dbname+']..sysobjects where id=@id'
exec sp_executesql @s,n'@objname sysname out,@id int',@objname out,@id
insert into #t values(@rid,@objname)
fetch next from tb into @rid,@dbname,@id
endclose tb
deallocate tb
select 程序id=a.req_spid
,資料庫=db_name(rsc_dbid)
,型別=case rsc_type when 1 then 'null 資源(未使用)'
when 2 then '資料庫'
when 3 then '檔案'
when 4 then '索引'
when 5 then '表'
when 6 then '頁'
when 7 then '鍵'
when 8 then '擴充套件盤區'
when 9 then 'rid(行 id)'
when 10 then '應用程式'
end,物件id=rsc_objid
,物件名=b.obj_name
,rsc_indid
from master..syslockinfo a left join #t b on a.req_spid=b.req_spid
godrop table #t
MySQL 鎖資訊檢視
檢視當前所有事務 select from information schema.innodb trx 檢視正在鎖的事務 select from information schema.innodb locks 檢視等待鎖的事務 select from information schema.innodb...
MySQL檢視事務鎖資訊
mysql的information schema庫下有四張 實際上是系統檢視 innodb locks innodb trx innodb lock waits processlist記錄了當前在mysql上的事務,執行緒,鎖的資訊。通過下面這條sql語句,可以查詢鎖與被鎖的事務或執行緒的資訊,語句...
ORACEL檢視使用者鎖表資訊
一天,測試的同事發來日誌說訂單歸檔異常,發來日誌看到在執行update操作時出現超時。該sql語句沒有問題,於是就懷疑是不是有人鎖了表。使用sql一查果然是,於是想用解鎖語句解鎖但是發現沒有許可權 由於檢視鎖表sql把鎖表的使用者也查出來了,所有就直接喊就鎖了。檢視使用者鎖表 select sess...