Library Cache Pin 及 Library Cache Lock分析
Oracle使用兩種資料結構來進行Library Cache的併發訪問控制:lock和pin。lock可以被認為是解析鎖,而pin則可以被認為是以讀取或改變物件內容為目的所加的短時鎖。之所以將Library Cache Object物件分開,使用多個鎖定來保護,其中一個重要的目的就是為了提高併發。
lock比pin具有更高的級別。lock在物件handle上獲得,在pin一個物件之前,必須首先獲得該handle的鎖定。handle可以理解為Library Cahce物件的Buffer Header,其中包含了庫快取物件的名稱、標記、指向具體物件的記憶體地址指標等資訊。
鎖定(lock)主要有3種模式:Null、Share和Exclusive。在讀取訪問物件時,通常需要獲取Null(空)模式以及Share(共享)模式的鎖定。在修改物件時,需要獲得Exclusive(排他)鎖定。Library Cache Lock根本作用就是控制多個Oracle客戶端對同一個Library Cache物件的併發訪問,通過對Library Cache Object Handle上加鎖來防止非相容的訪問。常見的使用或保護包括:
·一個客戶端防止其它客戶端訪問同一物件;
·一個客戶端可以通過鎖定維持相對長時間的依賴性(例如,防止其他客戶端修改物件);
·當在Library Cache中定位物件時也需要獲得這個鎖定。
在鎖定了Library Cache物件以後,一個程式在訪問之前必須pin該物件。同樣pin有3種模式:Null、Share和Exclusive。只讀模式時獲得共享pin,修改模式獲得排他pin。通常我們訪問、執行過程、Package時獲得的都是共享pin,如果排他pin被持有,那麼資料庫此時就要產生等待。
為了實現更好的效能,從Oracle 10gR2開始,Library Cache Pin已經逐漸被互斥機制(Mutex)所取代,在Oracle 11g中,這個變化就更為明顯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-659594/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- library cache lock和library cache pin理解
- 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 pin,Library Cache lock等待的解決方法
- zt_library cache pin和lock等待分析
- enq:Library cache lock/pin等待事件ENQ事件
- Library cache lock/pin詳解(轉)
- zt_如何平面解決library cache lock和library cache pin
- zt_如何使用event 10049分析定位library cache lock and library cache pin
- library cache pin等待分析
- sql version count引發cursor:pin s wait x及library cache latch library cache lockSQLAI
- Shared pool的library cache lock/pin及硬解析
- oracle11g之v$libcache_locks處理library cache lock及library cache pinOracle
- library cache pin/lock的解決辦法
- [20240824]跟蹤library cache lock library cache pin使用gdb.txt
- 【等待事件】library cache pin事件
- 等待事件--library cache pin事件
- library cache pin 等待事件事件
- 11G資料庫之library cache lock及library cache pin模擬結合hanganalyze定位資料庫
- library cache lock\pin的查詢與處理
- 0317Library Cache Pin/Lock Wait EventsAI
- [20240920]跟蹤library cache lock library cache pin使用gdb.txt
- 分析解決因”library cache pin”等待
- LIBRARY CACHE LOCK 等待事件事件
- library cache lock和cursor: pin S wait on X等待AI
- 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等待原因
- 【ASK_ORACLE】Library Cache概念篇(二)之Library Cache Pin的定義Oracle
- 一次library cache lock 問題分析
- [20241105]跟蹤library cache lock library cache pin使用gdb(11g)2.txt
- 【ASK_ORACLE】Library cache pin 與 library load lock的關係和區別Oracle
- [20241108]跟蹤library cache lock library cache pin使用gdb(11g)4.txt
- [20241108]跟蹤library cache lock library cache pin使用gdb(11g)3.txt