工作随记:oracle中偶发遇到存储过程编辑,删除等卡死问题


最近有几个客户也询问过:我的存储过程怎么编译、调试有时候就卡死不动了,而且还没办法删除,本次又碰到实际情况,做一个简单查询判断

一、查询session是否占用

通过动态性能表v$db_object_cache我们可以获取到表,索引,簇,PL/SQL过程和包装,并触发。在共享池对象级别的统计信息。
此次要查询的存储过程名称为:CONFIRMFEE

select * from v$db_object_cache where name ='CONFIRMFEE';

在这里插入图片描述
这里发现LOCKS=2,那也就意味着有2个session在锁定着存储过程。
在这里插入图片描述

二、通过对象名称定位对应SID

select * from v$access where object='CONFIRMFEE';

在这里插入图片描述

三、通过对应的SID查询session信息

session信息中可以看到机器信息,调用程序有助于大家排查

select * from v$session where sid='2575';

在这里插入图片描述

四、kill掉session

select 'alter system kill session '''||SID||','||SERIAL#||''' immediate;' from v$session where sid='1320';

至此,应该可以解决大部分的此类问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DBA狗剩儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值