Oracle處理存儲過程長期無反應

前端之家收集整理的这篇文章主要介绍了Oracle處理存儲過程長期無反應前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sql窗口中
1.查询当前所有死锁进程的编号
select xidusn,object_id,session_id,locked_mode from v$locked_object;
(2).所有进程编号
select username,sid,serial# from v$session;
(3)杀掉相关的死锁进程
alter system kill session 'sid,serial#';
(4)查询死锁oracle进程对应的系统进程
select pro.spid from v$session ses,v$process pro where ses.sid=129 and ses.paddr=pro.addr;
(5)杀掉系统进程
kill -9 pid
总结:
select pro.spid,loc.xidusn,loc.object_id,loc.session_id,loc.locked_mode from v$locked_object loc,v$session ses,v$process pro where ses.sid=loc.session_id and ses.paddr=pro.addr;

kill -9 pid

解决方法如下:

1:查V$DB_OBJECT_CACHE

SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0';

注意:CUX_OE_ORDER_RPT_PKG 为存储过程的名称

发现 locks=2

2:按对象查出sid的值

select /*+ rule*/ SID from V$ACCESS WHERE object='CUX_OE_ORDER_RPT_PKG';

注意:CUX_OE_ORDER_RPT_PKG 为存储过程的名称

3:查sid,serial#

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID';

4:alter system kill session 'sid值,serial#值' immediate;

猜你在找的Oracle相关文章