关闭
侧边栏

Library cache pin/lock 在Oracle 10g的增强

Posted by dbtan on 十二月 6th, 2009

Library cache pin/lock 在Oracle 10g的增强:

从Oracle 10g开始,以上测试将不会看到同样的效果,这是因为Oracle 10g对于对象编译与重建做出了增强。注意以下测试(来自Oracle 10gR2环境):

sys@NEI> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
sys@NEI> select object_name,last_ddl_time from user_objects where object_name='PINING';
OBJECT_NAME          LAST_DDL_TIME
-------------------- -------------------
PINING         &nbs
... ...
<阅读全文>

LIBRARY CACHE LOCK 等待事件

Posted by dbtan on 十二月 6th, 2009

LIBRARY CACHE LOCK 等待事件:

上篇日志,如果此时再发出一条grant或compile的命令,那么library cache lock等待事件将会出现。

Session 3:
sys@NEI> alter procedure pining compile;

此进程挂起,查询v$session_wait视图可以获得以下信息:

sys@NEI> select * from v$session_wait where event like 'library cache%';

       SID     
... ...
<阅读全文>

LIBRARY CACHE PIN 等待事件

Posted by dbtan on 十二月 5th, 2009

LIBRARY CACHE PIN 等待事件:

Oracle文档上这样介绍这个等待事件:library cache pin是用来管理library cache的并发访问的,pin一个Object会引起相应的heap被载入内存中(如果此前没有被加载),pins可以在Null、Share、Exclusive这3个模式下获得,可以认为pin是一种特定形式的锁。

当library cache pin等待事件出现时,通常说明该pin被其他用户已非兼容模式持有。library cache pin的等待时间为3秒钟,其中有1秒钟用于PMON后台进程,即在取得pin之前最多等待3秒钟,否则就超时。library cache pin的参数有P1(KGL Handle Address)、P2(Pin Address)和P3(Encoded Mode & Namespace),常用的主要是P1和P2<
... ...
<阅读全文>

Library Cache Pin 及 Library Cache Lock分析

Posted by dbtan on 十二月 4th, 2009

Library Cache Pin 及 Library Cache Lock分析:

Oracle使用两种数据结构来进行Library Cache的并发访问控制:lockpin。lock可以被认为是解析锁,而pin则可以被认为是以读取或改变对象内容为目的所加的短时锁。之所以将Library Cache Object对象分开,使用多个锁定来保护,其中一个重要的目的就是为了提高并发。

lock比pin具有更高的级别。lock在对象handle上获得,在pin一个对象之前,必须首先获得该handle的锁定。handle可以理解为Library Cahce对象的Buffer Header,其中包含了库缓存对象的名称、标记、指向具体对象
... ...
<阅读全文>


Copyright © 2009 - 2018 https://www.dbtan.com. All rights reserved.    京ICP备13006977号-1