1、首先確定執行此存儲過程的會話,o.kglnaobj即爲會話鎖住的存儲過程名稱:
Select distinct s.sid ,s.SERIAL#, username ,o.kglnaobj
from v$session s , sys.x$kglob o , sys.x$kglpn p where p.kglpnhdl=o.kglhdadr and s.saddr=p.kglpnuse ;
2、查看被堵塞的sql語句,SID爲1中查到的SID
select sid,SERIAL#,a.EVENT, a.SQL_ID, a.MACHINE, b.SQL_TEXT, b.SQL_FULLTEXT,b.FIRST_LOAD_TIME,b.LAST_LOAD_TIME,b.LAST_ACTIVE_TIME
from v$session a, v$sql b
where a.SQL_ID = b.SQL_ID
and a.USERNAME is not null
and a.STATUS = 'ACTIVE' and SID = '#SID'
3、殺掉會話,#SID和#SERIAL是從2查到的
alter system kill session '#SID,#SERIAL';
4、如果清理不掉,需要到服務器上面去殺掉進程
查詢進程id
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=#SID
清理進程
kill -9 spid(是上一句sql查詢出來的)