library cahce pin(库高速缓存pin)等待事件与库高速缓存并发性有关,当会话尝试在库高速缓存中钉住对象

以修改或检查该对象时产生该事件。会话必须获取(pin)以确保此时对象没有被其他会话更新。

当会话正在编译或分析PL/SQL过程和视图时,Oracle提交该事件。

library cache pin和library cache lock的并不是hard parse

create or replace procedure test_prc as
begin
insert into test1 select * from test1;
end; SESSION SID=1执行该存储过程后, SESSION SID=36去编译该过程 SQL> select sid,event from v$session_wait where event not like '%message%'; SID EVENT
---------- ----------------------------------------------------------------
1 db file scattered read
2 pmon timer
3 VKTM Logical Idle Wait
5 DIAG idle wait
8 DIAG idle wait
10 db file async I/O submit
12 log file parallel write
13 smon timer
18 Streams AQ: qmn coordinator idle wait
26 Streams AQ: qmn slave idle wait
28 Space Manager: slave idle wait SID EVENT
---------- ----------------------------------------------------------------
32 Streams AQ: waiting for time management or cleanup tasks
36 library cache pin
37 Data file init write 14 rows selected. SQL> col name format a30
SQL> select SESSION_ID,NAME,P1,P2,P3,WAIT_TIME,CURRENT_OBJ#,CURRENT_FILE#,CURRENT_BLOCK#
from v$active_session_history ash, v$event_name enm
where ash.event#=enm.event#
and SESSION_ID=36; 2 3 4 SESSION_ID NAME P1 P2 P3 WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139 SESSION_ID NAME P1 P2 P3 WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139
36 library cache pin 737880368 737837676 65539 0 236 1 102139 SQL> SQL> select name, PARAMETER1,PARAMETER2,PARAMETER3 from v$event_name where name='library cache pin'; NAME PARAMETER1 PARAMETER2 PARAMETER3
------------------------------ -------------------- -------------------- ------------------------------
library cache pin handle address pin address 100*mode+namespace --通过查询V$SESSION_WAIT找出正在等待”library cache pin”的session
SQL> SELECT sid,
SUBSTR (event, 1, 30),
TO_CHAR(p1, 'xxxxxxxx') p1_16,
--P1RAW P1_16,
p2,
p3
FROM v$session_wait
WHERE wait_time = 0 AND event LIKE 'library cache pin%'; 2 3 4 5 6 7 8 SID SUBSTR(EVENT,1,30) P1_16 P2 P3
---------- ------------------------------------------------------------ --------- ---------- ----------
36 library cache pin 2bfb2930 737458808 3.3599E+14 --通过查询DBA_LOCK_INTERNAL和V$SESSION_WAIT,可得到与”library cache pin” 等待相关的object的名字
SQL> SELECT TO_CHAR (SESSION_ID, '999') sid,
SUBSTR (LOCK_TYPE, 1, 30) TYPE,
SUBSTR (lock_id1, 1, 23) Object_Name,
SUBSTR (mode_held, 1, 4) HELD,
SUBSTR (mode_requested, 1, 4) REQ,
lock_id2 Lock_addr
FROM dba_lock_internal
WHERE mode_requested <> 'None' AND mode_requested <> mode_held
AND session_id IN
(SELECT sid
FROM v$session_wait
WHERE wait_time = 0 AND event LIKE 'library cache pin%');
2 3 4 5 6 7 8 9 10 11 12 ; SID TYPE OBJECT_NAME HELD REQ LOCK_ADDR
---- ------------------------------------------------------------ ---------------------------------------------- -------- -------- ------------------------- ---------------
36 Table/Procedure/Type Definitio TEST.TEST_PRC None Excl 2BFB2930 SQL> SQL> select sid, P1RAW,P1TEXT ,event from v$session_wait where event not like '%message%'; SID P1RAW P1TEXT EVENT
---------- ---------------- ------------------------------ ----------------------------------------------------------------
1 0000000000000004 file# db file scattered read
2 0000000000000100 duration pmon timer
3 00 VKTM Logical Idle Wait
5 0000000000000005 component DIAG idle wait
8 0000000000000005 component DIAG idle wait
10 000000000000077A requests db file async I/O submit
12 0000000000000001 files log file parallel write
13 000000000000012C sleep time smon timer
18 00 Streams AQ: qmn coordinator idle wait
26 0000000000000001 Type Streams AQ: qmn slave idle wait
28 0000000000000001 Slave ID Space Manager: slave idle wait SID P1RAW P1TEXT EVENT
---------- ---------------- ------------------------------ ----------------------------------------------------------------
32 00 Streams AQ: waiting for time management or cleanup tasks
36 000000002BFB2930 handle address library cache pin
37 00 Slave ID Space Manager: slave idle wait 14 rows selected. SELECT s.sid, kglpnmod "Mode", kglpnreq "Req",p.kglpnhdl
FROM x$kglpn p, v$session s
WHERE p.kglpnuse=s.saddr
AND kglpnhdl='&P1RAW' SQL> SELECT s.sid, kglpnmod "Mode", kglpnreq "Req",p.kglpnhdl
FROM x$kglpn p, v$session s
WHERE p.kglpnuse=s.saddr 2 3 ; SID Mode Req KGLPNHDL
---------- ---------- ---------- --------
36 0 3 2BFB2930
1 2 0 2BFB2930 这里的kglpnhdl=p1_16 SID SUBSTR(EVENT,1,30) P1_16 P2 P3
---------- ------------------------------------------------------------ --------- ---------- ----------
36 library cache pin 2bfb2930 737458808 3.3599E+14 000000002BFB2930 16进制就是2BFB2930 转换为10进制就是737880368






												

library cahce pin的更多相关文章

  1. 如何使用event 10049分析定位library cache lock and library cache pin

    Oracle Library Cache 的 lock 与 pin 说明 一. 相关的基本概念 之前整理了一篇blog,讲了Library Cache 的机制,参考: Oracle Library c ...

  2. 一次library cache pin故障的解决过程

    内容如下: 今天接到同事的电话,说他的一个存储过程已经run了一个多小时了,还在继续run,他觉得极不正常,按道理说不应该run这么长时间. 我说那我去看一下吧. 这个库是一个AIX上的10.2.0. ...

  3. 深入理解shared pool共享池之library cache的library cache pin系列三

    关于library cache相关的LATCH非常多,名称差不多,我相信一些人对这些概念还是有些晕,我之前也有些晕,希望此文可以对这些概念有个更为清晰的理解,本文主要学习library cache p ...

  4. 外键约束列并没有导致大量建筑指数library cache pin/library cache lock

    外键约束列并没有导致大量建筑指数library cache pin/library cache lock 清除一个100大数据表超过一百万线,发现已经运行了几个小时: delete B001.T_B1 ...

  5. Resolving Issues of "Library Cache Pin" or "Cursor Pin S wait on X" (Doc ID 1476663.1)

    Doc ID 1476663.1) To Bottom In this Document   Purpose   Troubleshooting Steps   Brief Definition:   ...

  6. 怎么发现RAC环境中&#39;library cache pin&#39;等待事件的堵塞者(Blocker)?

    怎么发现RAC环境中的'library cache pin'等待事件的堵塞者(Blocker) 參考自 How to Find the Blocker of the 'library cache pi ...

  7. DBA手记(学习)-library cache pin

    select sid,event,p1raw from v$session_wait where event like 'library cache pin%'; select sql_text fr ...

  8. Oracle单实例情况下的library cache pin的问题模拟与问题分析

    Oracle单实例情况下的library cache pin的问题模拟与问题分析 參考自: WAITEVENT: "library cache pin" Reference Not ...

  9. library cache pin解决方法

    library cache pin大部分都是因为编译存储过程造成的 查找造成问题的数据库对象(一般为存储过程) SELECT * FROM v$session_wait WHERE event = ' ...

随机推荐

  1. winform程序中将控件置于最顶层或最底层的方法

    有时,我们可能动态的添加控件,并准备将其置于对顶层或最底层.实现的方法有两个: 一种方法是在WinForm窗体中使用Controls控件集的SetChildIndex方法,该方法将子控件设定为指定的索 ...

  2. lvchange的available參数

    available參数在man info help中均无此參数,事实上參数为:activate 写此此.值得用的人注意. available 參数实为:  -a, --activate [a|e|l] ...

  3. Qt 学习之路:视图选择 (QItemSelectionModel)

    选择是视图中常用的一个操作.在列表.树或者表格中,通过鼠标点击可以选中某一项,被选中项会变成高亮或者反色.在 Qt 中,选择也是使用了一种模型.在 model/view 架构中,这种选择模型提供了一种 ...

  4. navigaitonBar的自定义设置

    navigaitonBar的自定义设置 navigationBar介绍: navigationbar就是一个导航视图控制器上面的导航栏. 如何设置这个navigationbar? 首先我们来探讨如何来 ...

  5. Java基础知识强化之IO流笔记13:递归之不死神兔问题(斐波那契数列)

    1.这个问题是如下的:    有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第3个月又生一对兔子,加入兔子都不死,问第20个月兔子的对数? 分析:我们找规律 兔子对数第1个月:   1 ...

  6. Python开发【第十篇】:CSS --无内容点击-不进去(一)

    Python开发[第十篇]:CSS  --无内容点击-不进去(一)

  7. Android 中Webview 自适应屏幕

    随笔 - 478  文章 - 3  评论 - 113 Android 中Webview 自适应屏幕   webview中右下角的缩放按钮能不能去掉 settings.setDisplayZoomCon ...

  8. ASP.NET面试

    1.net中读写数据库需要用到那些类?他们的作用都是什么?答:DataSet:数据存储器.DataCommand:执行语句命令.DataAdapter:数据的集合,用语填充.2.介绍一下什么是Code ...

  9. 获取外网IP地址

    public static string GetRealIP(){            string result = String.Empty;            result = HttpC ...

  10. div如何加滚动条

    <div style="position:absolute; height:400px; overflow:auto"></div>div 设置滚动条显示: ...