oracle package lock,Oracle 11g下重现library cache lock等待事件

从下面的例子中可以看到,在生产数据库中对象的重新编译会导致library cache lock,所以应该尽量避免在业务高峰期编译对象。如果是package或过程中存在复杂的依赖关系就极易导致library cache lock的出现,所以在应用开发的过程中,也应该注意这方面的问题。

session1:

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

SQL> create or replace procedure pining

is

begin

null;

end;

/

SQL> create or replace procedure calling

is

begin

pining;

dbms_lock.sleep(200);

end;

/

session2:

alter procedure pining compile;

session3:

drop procedure pining;

session4:

SQL> select sid, event,wait_class, seconds_in_wait

2    from v$session_wait w

3  where w.WAIT_CLASS <> 'Idle';

SID EVENT                                                            WAIT_CLASS

---------- ---------------------------------------------------------------- ----------------

6 library cache lock                                              Concurrency

132 library cache pin                                                Concurrency

191 SQL*Net message to client                                        Network

0b1331709591d260c1c78e86d0c51c18.png


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部