ORACLE 儲存過程死鎖

2021-08-04 00:25:49 字數 874 閱讀 8782

/**

問題描述:

在編譯某個儲存過程時,由於沒提交或斷網或者test沒停止又重新編譯,導致編譯存過一直卡死

問題分析:

儲存過程或某張表被鎖

例如:儲存過程 p_bonusmid 死鎖,表現的現象是在編譯時無響應。

**/-- 首先使用下面語句查詢存過(儲存過程) p_bonusmid 的程序

select * from v$db_object_cache where name=upper('p_bonusmid') and locks!='0';

-- 發現有記錄被查詢出來表示該儲存過程死鎖

-- 然後使用下面語句查詢p_bonusmid的sid

select sid from v$access where object=upper('p_bonusmid');

/**查詢結果為:

102**/

-- 使用下面語句查詢sid、serial和paddr

select sid,serial#,paddr from v$session

where sid='102';

/**查詢結果如下:

------------------------------------------

1 102 11518 000007ff6451a9f0

**/-- 最後殺掉這個儲存過程的語句為:

alter system kill session

'sid值,serial#值'

immediate;

--本例語句如下:

alter system kill session

'102,11518'

immediate;

死鎖的儲存過程

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

MSSQL處理死鎖儲存過程

sql server死鎖使我們經常遇到的問題,下面就為您介紹如何查詢 sql server 死鎖,希望對您學習sql server死鎖方面能有所幫助。sql server死鎖的查詢方法 exec master.dbo.p lockinfo 0,0 顯示死鎖的程序,不顯示正常的程序 exec mast...

檢視死鎖儲存過程

object storedprocedure dbo sp who lock script date 08 13 2014 12 52 08 set ansi nulls on goset quoted identifier on goalter procedure dbo sp who lock ...