oracle11g之v$libcache_locks處理library cache lock及library cache pin
/****oracle11g之v$libcache_locks解決library cache lock及library cache pin的等待者及持鎖者*******/
/******持鎖會話*************/
SQL> create or replace procedure proc_lib
2 authid current_user
3 as
4 begin
5 dbms_lock.sleep(360000);
6 end;
7 /
Procedure created.
SQL> select sid from v$mystat where rownum=1;
SID
----------
197
SQL> exec proc_lib;
/*************等待鎖會話********/
SQL> select sid from v$mystat where rownum=1;
SID
----------
69
SQL> alter procedure proc_lib compile;
/*******處理過程**************/
---定位等待會話的p1,p1raw即object handle,具體含義:參v$event_name
SQL> select * from v$session_wait where sid=69;
SID SEQ# EVENT P1TEXT P1 P1RAW P2TEXT P2 P2RAW P3TEXT P3 P3RAW WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS WAIT_TIME SECONDS_IN_WAIT STATE WAIT_TIME_MICRO TIME_REMAINING_MICRO TIME_SINCE_LAST_WAIT_MICRO
---------- ---------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ------------- ----------- ---------------------------------------------------------------- ---------- --------------- ------------------- --------------- -------------------- --------------------------
69 39 library cache pin handle address 8793426503 000007FF611028C8 pin address 8793274245 000007FF57FCE220 100*mode+namespace 3105948550 00011A7C00010003 3875070507 4 Concurrency 0 398 WAITING 397920007 502079993 0
---定位等待會話的saddr會話地址
SQL> select * from v$session where sid=69;
SADDR SID SERIAL# AUDSID PADDR USER# USERNAME COMMAND OWNERID TADDR LOCKWAIT STATUS SERVER SCHEMA# SCHEMANAME OSUSER PROCESS MACHINE PORT TERMINAL PROGRAM TYPE SQL_ADDRESS SQL_HASH_VALUE SQL_ID SQL_CHILD_NUMBER SQL_EXEC_START SQL_EXEC_ID PREV_SQL_ADDR PREV_HASH_VALUE PREV_SQL_ID PREV_CHILD_NUMBER PREV_EXEC_START PREV_EXEC_ID PLSQL_ENTRY_OBJECT_ID PLSQL_ENTRY_SUBPROGRAM_ID PLSQL_OBJECT_ID PLSQL_SUBPROGRAM_ID MODULE MODULE_HASH ACTION ACTION_HASH CLIENT_INFO FIXED_TABLE_SEQUENCE ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# TOP_LEVEL_CALL# LOGON_TIME LAST_CALL_ET PDML_ENABLED FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER RESOURCE_CONSUMER_GROUP PDML_STATUS PDDL_STATUS PQ_STATUS CURRENT_QUEUE_DURATION CLIENT_IDENTIFIER BLOCKING_SESSION_STATUS BLOCKING_INSTANCE BLOCKING_SESSION FINAL_BLOCKING_SESSION_STATUS FINAL_BLOCKING_INSTANCE FINAL_BLOCKING_SESSION SEQ# EVENT# EVENT P1TEXT P1 P1RAW P2TEXT P2 P2RAW P3TEXT P3 P3RAW WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS WAIT_TIME SECONDS_IN_WAIT STATE WAIT_TIME_MICRO TIME_REMAINING_MICRO TIME_SINCE_LAST_WAIT_MICRO SERVICE_NAME SQL_TRACE SQL_TRACE_WAITS SQL_TRACE_BINDS SQL_TRACE_PLAN_STATS SESSION_EDITION_ID CREATOR_ADDR CREATOR_SERIAL# ECID
---------------- ---------- ---------- ---------- ---------------- ---------- ------------------------------ ---------- ---------- ---------------- ---------------- -------- --------- ---------- ------------------------------ ------------------------------ ------------------------ ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- -------------- ------------- ---------------- -------------- ----------- ---------------- --------------- ------------- ----------------- --------------- ------------ --------------------- ------------------------- --------------- ------------------- ------------------------------------------------ ----------- -------------------------------- ----------- ---------------------------------------------------------------- -------------------- ------------- -------------- --------------- ------------- --------------- ----------- ------------ ------------ ------------- --------------- ----------- -------------------------------- ----------- ----------- --------- ---------------------- ---------------------------------------------------------------- ----------------------- ----------------- ---------------- ----------------------------- ----------------------- ---------------------- ---------- ---------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ------------- ----------- ---------------------------------------------------------------- ---------- --------------- ------------------- --------------- -------------------- -------------------------- ---------------------------------------------------------------- --------- --------------- --------------- -------------------- ------------------ ---------------- --------------- ----------------------------------------------------------------
000007FF626D16A0 69 471 350999 000007FF624E7390 66 TBL_BCK 25 2147483644 000007FF5ED05E98 ACTIVE DEDICATED 66 TBL_BCK 123-PC\123 7264:4756 WORKGROUP\123-PC 0 123-PC sqlplus.exe USER 000007FF57FCD538 238670938 9kaw06473mp2u 0 2013/4/9 20:32 16777217 000007FF57FCD538 238670938 9kaw06473mp2u 0 2013/4/9 20:12: 16777216 SQL*Plus 3669949024 0 69894 -1 0 0 0 94 2013/4/9 20 405 NO NONE NONE NO DISABLED ENABLED ENABLED 0 VALID 1 197 VALID 1 197 39 280 library cache pin handle address 8793426503 000007FF611028C8 pin address 8793274245 000007FF57FCE220 100*mode+namespace 3105948550 00011A7C00010003 3875070507 4 Concurrency 0 405 WAITING 404969564 495030436 0 SYS$USERS DISABLED FALSE FALSE FIRST EXEC 100 000007FF624E7390 51
---基於上述的object handle定位持鎖會話,mode_held為排它鎖模式
SQL> select * from v$libcache_locks where object_handle='000007FF611028C8' and mode_held=3;
TYPE ADDR HOLDING_USER_SESSION HOLDING_SESSION OBJECT_HANDLE LOCK_HELD REFCOUNT MODE_HELD MODE_REQUESTED SAVEPOINT_NUMBER
---- ---------------- -------------------- ---------------- ---------------- ---------------- ---------- ---------- -------------- ----------------
LOCK 000007FF57FCD9C8 000007FF626D16A0 000007FF626D16A0 000007FF611028C8 00 1 3 0 329
--基於上述的持鎖會話holding_session定位持鎖會話的sid及執行的具體sql
SQL> select sid,(select sql_text from v$sql where sql_id=v$session.sql_id)from v$session where saddr='000007FF626D16A0';
SID (SELECTSQL_TEXTFROMV$SQLWHERES
---------- --------------------------------------------------------------------------------
69 alter procedure proc_lib compile
小結:
1,library cache lock及library cache pin是為了儲存library cache object的一種鎖資源
2,v$libcache_locks快速定位持鎖及等待鎖的會話及執行sql
3,處理方案也可以用x$kgllk
具體參看:http://blog.csdn.net/changyanmanman/article/details/7611758
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-758109/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Library Cache Pin 及 Library Cache Lock分析
- library cache lock和library cache pin理解
- oracle library cache之library cache lock_library cache pin wait event釋義OracleAI
- library cache lock\pin的查詢與處理
- library cache pin和library cache lock的診斷分析
- library cache lock和library cache pin區別總結
- 定位Library Cache pin,Library Cache lock等待的解決方法
- enq:Library cache lock/pin等待事件ENQ事件
- Library cache lock/pin詳解(轉)
- zt_如何平面解決library cache lock和library cache pin
- sql version count引發cursor:pin s wait x及library cache latch library cache lockSQLAI
- 11G資料庫之library cache lock及library cache pin模擬結合hanganalyze定位資料庫
- Shared pool的library cache lock/pin及硬解析
- zt_如何使用event 10049分析定位library cache lock and library cache pin
- library cache pin/lock的解決辦法
- zt_library cache pin和lock等待分析
- 'library cache lock'等待事件的處理方法事件
- Library cache pin問題的處理過程
- 【等待事件】library cache pin事件
- 等待事件--library cache pin事件
- library cache pin等待分析
- library cache pin 等待事件事件
- 0317Library Cache Pin/Lock Wait EventsAI
- RAC 環境Library Cache Lock的處理方法
- 【ASK_ORACLE】Library Cache概念篇(二)之Library Cache Pin的定義Oracle
- library cache lock和cursor: pin S wait on X等待AI
- LIBRARY CACHE LOCK 等待事件事件
- RAC環境Library Cache Lock的處理方法(zt)
- 深入理解shared pool共享池之library cache的library cache pin系列三
- Library cache pin/lock 在Oracle 10g的增強Oracle 10g
- latch:library cache lock等待事件事件
- oracle異常:library cache lockOracle
- 解決library cache pin等待事件事件
- library cache pin 阻塞程式查詢
- 查詢Library Cache Pin等待原因
- 深入理解shared pool共享池之library cache的library cache lock系列四
- 共享池之六:shared pool latch/ library cache latch /lock pin 簡介
- 【TUNE_ORACLE】等待事件之“library cache lock”Oracle事件