zoukankan      html  css  js  c++  java
  • library cahce pin

     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 

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  • 相关阅读:
    开源权限框架shiro 入门
    Struts1.2入门笔记
    memcache概述
    教你如何将中文转换成全拼
    WPF第一章(XAML前台标记语言(Chapter02代码讲解))
    WPF第一章(XAML前台标记语言)
    WPF简介
    Activity以singleTask模式启动,intent传值的解决办法
    linux下查看文件编码以及编码转换
    Fedora 17字体美化
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/3797905.html
Copyright © 2011-2022 走看看