• library cache lock


    SESSION 34 执行存储过程:
    
    SESSION 43 编译存储过程:
    
    SESSION 25  删除存储过程:
    
    1.查询查看library cache lock等待事件的相关会话  
    
    SQL> select sid, P1RAW,P1TEXT ,event from v$session_wait where event not like '%message%';
    
           SID P1RAW	    P1TEXT							     EVENT
    ---------- ---------------- ---------------------------------------------------------------- ----------------------------------------------------------------
    	 2 000000000000006F duration							     pmon timer
    	 3 00										     VKTM Logical Idle Wait
    	 5 0000000000000005 component							     DIAG idle wait
    	 8 0000000000000005 component							     DIAG idle wait
    	10 00000000000006F0 requests							     db file async I/O submit
    	13 000000000000012C sleep time							     smon timer
    	18 00										     Streams AQ: qmn coordinator idle wait
    	25 000000002BF0897C handle address						     library cache lock
    	26 0000000000000001 Type							     Streams AQ: qmn slave idle wait
    	28 0000000000000001 Slave ID							     Space Manager: slave idle wait
    	31 0000000000000004 file#							     db file sequential read
    
           SID P1RAW	    P1TEXT							     EVENT
    ---------- ---------------- ---------------------------------------------------------------- ----------------------------------------------------------------
    	32 00										     Streams AQ: waiting for time management or cleanup tasks
    	34 0000000000000004 file#							     db file sequential read
    	43 000000002BF0897C handle address						     library cache pin
    
    SQL> select saddr,sid,username,event,p1raw from v$session where event='library cache lock';
    
    SADDR		SID USERNAME			   EVENT							    P1RAW
    -------- ---------- ------------------------------ ---------------------------------------------------------------- ----------------
    35FEE7F0	 25 TEST			   library cache lock						    000000002BF0897C
    
    2.查询持有library cache lock的会话以及lock住的对象
    
    SQL> select user_name,kglnaobj "Owner",kgllkses saddr,kgllkreq req,kgllkmod mod,kglnaobj object
     from x$kgllk lock_a
     where kgllkmod > 0
     and exists (select lock_b.kgllkhdl from x$kgllk lock_b
     where kgllkses = '35FEE7F0' /* blocked session */
     and lock_a.kgllkhdl = lock_b.kgllkhdl
     and kgllkreq > 0);  2    3    4    5    6    7  
    
    USER_NAME		       Owner							    SADDR	    REQ        MOD OBJECT
    ------------------------------ ------------------------------------------------------------ -------- ---------- ---------- ---------------------------------
    
    ---------------------------
    TEST			       TEST_PRC 						    35FD6A24	      0 	 1 TEST_PRC
    TEST			       TEST_PRC 						    35FBEC58	      0 	 3 TEST_PRC
    
    这里出现了两行结果,不过从mod列可以判断35FD6A24这个会话持有的lock模式为1(如果没记错的话数字1表示null),所以正在阻塞25会话的是会话地址为35FBEC58的会话。
    你也可以通过以下sql做进一步验证
    
    
    SQL> select sid,saddr,event,q.sql_text from v$session s,v$sql q
     where saddr in ('35FD6A24','35FBEC58') and s.sql_id=q.sql_id;   2  
    
           SID SADDR    EVENT		 SQL_TEXT
    ---------- -------- -------------------- --------------------
    	34 35FD6A24 db file sequential r INSERT INTO TEST1 SE
    		    ead 		 LECT * FROM TEST1
    
    	43 35FBEC58 library cache pin	 alter procedure  tes
    					 t_prc compile
    
    
    从输出结果发现会话地址为35FBEC58 的会话正在编译TEST_PRC,所以该会话持有的lock模式肯定会x,而会话25正是被它所阻塞。

  • 相关阅读:
    tmux 鼠标滚动
    宝藏主题 cnblogsthemesilence
    数组乱序初始化:sorry, unimplemented: nontrivial designated initializers not supported
    SSH 连接 WSL
    移动硬盘变成 RAW 格式
    Linux 终端快捷键
    Adaptive AUTOSAR 学习笔记 1 概述、背景、AP CP 对比区别
    Qt扫盲篇
    Qt(C++)之实现风行播放器界面
    Qt之统一的UI界面格式基调,漂亮的UI界面
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/3797904.html
Copyright © 2020-2023  润新知