KILL死鎖的儲存過程

2021-09-30 08:17:59 字數 1473 閱讀 5993

死鎖可以查一下:

1:sp_who 或 sp_who2

2: select * from sysprocesses where blocked <> 0

3: 企業管理器->伺服器->管理工具->活動->當前活動然後把他kill掉。。。

4:sql事件探查器,監控一下,看主要是那些處理引起的死鎖.然後做相應的處理.

用事件探查器new乙個trace,監視一下造成你sqlserver停頓的情況。。。

最好的辦法還是檢查一下引起鎖的原因,一般是由你的**引起的。

sql事件探查器用法

開始--程式--ms sqlserver

--事件探察器(sql profiler)

--檔案

--新建

--設定跟蹤的專案...

--然後資料庫的呼叫情況就會顯示出

--檢視鎖資訊

select 程序id=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,rsc_objid,rsc_indid

from master..syslockinfo

killlock儲存過程

use master

gocreate proc killspid (@dbname varchar(20))

asbegin

declare @sql nvarchar(500),@temp varchar(1000)

declare @spid int

set @sql='declare getspid cursor for

select spid from sysprocesses wheredbid=db_id('''+@dbname+''')'

exec (@sql)

open getspid

fetch next from getspid into @spid

while @@fetch_status<>-1

begin

set @temp='kill '+rtrim(@spid)

exec(@temp)

fetch next from getspid into @spid

endclose getspid

deallocate getspid

end--用法

use master

exec killspid '資料庫名'

死鎖的儲存過程

exec sp who lock use master gocreate procedure sp who lock asbegin declare spid int,bl int,inttransactioncountonentry int,introwcount int,intcountprop...

kill慢sql的儲存過程

呼叫儲存過程 create procedure killsql begin declare v sql 1 varchar 500 declare kill id int declare num int default 0 declare id list cursor for select id f...

ORACLE 儲存過程死鎖

問題描述 在編譯某個儲存過程時,由於沒提交或斷網或者test沒停止又重新編譯,導致編譯存過一直卡死 問題分析 儲存過程或某張表被鎖 例如 儲存過程 p bonusmid 死鎖,表現的現象是在編譯時無響應。首先使用下面語句查詢存過 儲存過程 p bonusmid 的程序 select from v d...