博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 编译、调用或调试Procedure、Function或Package时卡死问题
阅读量:5159 次
发布时间:2019-06-13

本文共 601 字,大约阅读时间需要 2 分钟。

在对Procedure、Function或Package进行Debug时,如果长时间没有操作,这个时候不会主动的释放会话的资源,如果再次对Procedure、Function或Package进行Debug的话,就会产生等待产生数据库锁。只有等到数据库回收上次Debug的会话资源或者DBA手动将会话KILL掉。

以下是手动KILL会话的方法:

1: 查询V$DB_OBJECT_CACHE

SELECT * FROM V$DB_OBJECT_CACHE WHERE NAME='PROCEDURE_NAME' AND LOCKS!='0';

注意: PROCEDURE_NAME为存储过程的名称。

2: 通过对象查询SID

SELECT SID FROM V$ACCESS WHERE OBJECT='PROCEDURE_NAME';

注意: PROCEDURE_NAME为存储过程的名称。

3: 查询SID,SERIAL#

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='SID';

注意: SID为第二步查询出的SID。

4: KILL死锁的会话

ALTER SYSTEM KILL SESSION 'SID,SERIAL#' IMMEDIATE;

转载于:https://www.cnblogs.com/huak/p/7729133.html

你可能感兴趣的文章
Java50道经典习题-程序28 排序算法
查看>>
Java基础---String类和基本数据类型包装类
查看>>
[NYOJ 37] 回文字符串
查看>>
C#-表达式树
查看>>
2.想起来的一点基础知识
查看>>
曾经踩过的坑--浏览器兼容-history
查看>>
centos7 Apache 2.4.6 多域名多网站配置
查看>>
MySQL性能优化
查看>>
建造者模式(Builder Pattern)
查看>>
程序开发的艺术
查看>>
对 Unity 碰撞器的相关调研
查看>>
linux 快速清空文件内容
查看>>
centos7安装配置jdk
查看>>
新年新气象
查看>>
webpack入门
查看>>
查看容器的挂载目录
查看>>
分布式系统(Distributed System)资料
查看>>
Android中LocalSocket使用
查看>>
【C++】各种成员变量
查看>>
【NOIP2009】靶形数独
查看>>