Oracle 编译、调用或调试Procedure、Function或Package时卡死问题
2017-10-25 15:33
1591 查看
在对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;
以下是手动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;
相关文章推荐
- Oracle 编译、调用或调试Procedure、Function或Package时卡死问题
- Oracle 编译、调用或调试Procedure、Function或Package时卡死问题
- Oracle包编译,调用或调试Package时卡死问题
- java中调用oracle procedure或者function返回类型的问题
- java 调用 oracle的function 和 procedure
- Oracle中的Package/Procedure/Function存放在哪里?
- ORACLE相关语法--子程序和程序包(package,function,procedure)
- 黑马程序员-浅谈个人理解,oracle procedure-存储过程、Function-函数、 package-包
- Oracle 创建Package Procedure Function
- ORACLE相关语法——子程序和程序包(package,function,procedure
- PL/SQL Developer Debug Procedure/Function/Package在Step Into时直接结束的问题
- vb.net 调用oracle的package中的Procedure
- Oracle procedure,package,function,triger 的Flashback Query
- Oracle创建一个type、package、body、function、procedure及常用系统函数。
- Oracle(四)权限,procedure,块,function,package
- ORACLE相关语法——子程序和程序包(package,function,procedure)
- ORACLE相关语法--子程序和程序包(package,function,procedure)
- Oracle基础学习三:过程PROCEDURE 和函数FUNCTION 的创建及调用
- Oracle如何调试package、procedures、Function?
- ibatis调用Oracle中procedure和function