死鎖可以查一下:
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...