zoukankan      html  css  js  c++  java
  • Oracle 编译、调用或调试Procedure、Function或Package时卡死问题

    在对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;

  • 相关阅读:
    SQL结构化查询语言
    数据库主外键
    SQL数据库数据类型详解
    注释和特殊符号
    文本装饰
    列表样式
    网页背景
    SQL数据库数据类型详解
    数据库主外键
    Update 语句
  • 原文地址:https://www.cnblogs.com/huak/p/7729133.html
Copyright © 2011-2022 走看看