如果包、存储过程、函数关联的对象有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/
,如需转载,请注明出处,否则将追究法律责任。