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. SpringMVC 学习笔记(一) Hello World

    springMVC概述: Spring MVC 是眼下最主流的MVC 框架之中的一个 Spring MVC 通过一套 MVC 注解.让 POJO 成为处理请 求的控制器,而无须实现不论什么接口. 支持 ...

  2. android控件上面实现提醒信息

    android开发中,经常会用到显示一个提醒信息,比如个人中心,有新信息,购买商品后,在购物车控件,显示购物数量等.我们可以用,2个控件来实现,或者用层叠图. 还有一种简单方便的办法,使用别人的开源代 ...

  3. Qt应用中检测内存泄露——VLD

    本文简要描述一下在Qt应用中使用VLD来检测内存泄露.本次测试环境:QtCreator2.3 + Qt4.7.4-vs2008 + VS2008 Express. 1.下载并安装:VLD-2.2: h ...

  4. IDL实现主成分变化(PCA)

    IDL只能通过调用envi的二次接口做图像的变换,但是对于普通的数据没有提供函数.根据主成分变换的原理,用IDL写出来了,这样就不用每次再去用matlab的princomp去做了.主成分变化的基本过程 ...

  5. 模板-->Guass消元法(求解多元一次方程组)

    如果有相应的OJ题目,欢迎同学们提供相应的链接 相关链接 所有模板的快速链接 简单的测试 None 代码模板 /* * TIME COMPLEXITY:O(n^3) * PARAMS: * a The ...

  6. zabbix图中出现中文乱码问题

    我这周部署了zabbix监控服务器,但是配置过程中发现当有中文时,图中的中文会变成方块 如下图所示: 这个问题是由于zabbix的web端没有中文字库,我们最需要把中文字库加上即可 解决办法如下 1. ...

  7. Python中利用函数装饰器实现备忘功能

    Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下   " ...

  8. GIT学习(一)-->Git产生的历史原因

    首先要说:Git是目前世界上最先进的分布式版本控制系统(没有之一). git的作者:Linus,林纳斯(下图就是,先膜拜一下,因为成就可不止这一点) 他是为何要写git的呢?话说 Linus虽然创建了 ...

  9. <html:form>、 <html:text>、<html:password>、<html:submit> 标签

    用Struts标签来写表单元件, 引用: <%@ taglib uri="/tags/struts-html" prefix="html" %> 例 ...

  10. HBase 学习之一 <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

    HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行                       ----首先感谢网络能够给我提供一个开放的学习平台,如果没有网上的技术爱好者提供 ...