ITPub博客

首页 > 数据库 > Oracle > ORACLE自动重编译包导致查询被卡

ORACLE自动重编译包导致查询被卡

原创 Oracle 作者:gxlineji 时间:2016-06-17 14:53:59 0 删除 编辑


如果包、存储过程、函数关联的对象有DDL变化或者引用了全局变量(并重编译了包含全局变量的包),那么首次调用时,会重编译该包、存储过程、函数关联。
如果是并行调用包、存储过程、函数关联,很容易导致内存锁,
其它session如果要查询关联的对象,将会出现 cursor: pin S wait on X 等待,查询被卡住。

查询被卡住的session,以及被卡在的SQL:
select se.BLOCKING_SESSION,sql.INST_ID,se.event,sql.SQL_TEXT,sql.SQL_FULLTEXT,sql.SQL_ID,se.* 
from gv$sqlarea sql ,gv$session se
 where sql.ADDRESS=se.SQL_ADDRESS and sql.INST_ID=se.INST_ID
 and se.status='ACTIVE' and se.BLOCKING_SESSION is not null;


查询包、存储过程、函数关联的对象:
select * from dba_dependencies t where owner='xxx';

查询上次DDL时间
select * from dba_objects t where owner='xxx' order by t.last_ddl_time desc ;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10995764/viewspace-2120368/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-09-11

  • 博文量
    48
  • 访问量
    76655