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

文章目录


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

一、查询session是否占用

通过动态性能表v$db_object_cache我们可以获取到表,索引,簇,PL/SQL过程和包装,并触发。在共享池对象级别的统计信息。

此次要查询的存储过程名称为:CONFIRMFEE

sql 复制代码
select * from v$db_object_cache where name ='CONFIRMFEE';

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

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

SQL 复制代码
select * from v$access where object='CONFIRMFEE';

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

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

SQL 复制代码
select * from v$session where sid='2575';

四、kill掉session

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

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

相关推荐
Anastasiozzzz5 分钟前
Redis的键过期是如何删除的?【面试高频】
java·数据库·redis·缓存·面试
北海屿鹿12 分钟前
【MySQL】内置函数
android·数据库·mysql
90的程序爱好者1 小时前
inux定时清理oracle归档日志
oracle
qq_366086222 小时前
SQL Server 之 Full-Text Search 全文搜索
运维·服务器·数据库
李少兄2 小时前
数据库开发中的布尔表示:0 与 1 的语义规范
数据库·数据库开发
小王努力学编程2 小时前
LangChain——AI应用开发框架(核心组件1)
linux·服务器·前端·数据库·c++·人工智能·langchain
麦聪聊数据3 小时前
重构数据交付链路:基于 API 网关实现数据工程与业务分析的解耦
数据库·sql
SJLoveIT3 小时前
深度复盘:海量数据下的 SQL 优化与生命周期治理
数据库·sql
TH_13 小时前
37、SQL的Explain
java·数据库·sql
打工的小王4 小时前
Redis(二)数据类型
数据库·redis·缓存