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 

    
    
    
    
    
    
    
    
    
    
    
    
    
                                        
    
  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352367.html
Copyright © 2011-2022 走看看