library cache lock和library cache pin區別總結

litterbaby發表於2007-07-11
library cache lock和library cache pin區別總結[@more@]

library cache locklibrary cache pin區別總結

library cache lock

library cache pin

共同點

同屬於資料字典鎖,目的是為了:

1、保持資料字典的一致性

2、為事務提供一致的物件定義檢視

鎖物件

是為了請求library cache物件控制程式碼

是為了請求library cache資料heap

先後關係

必須先期得到這個鎖

必須在得到library cache lock之後才能獲得這個鎖

獲取時間

parse call階段

call execution階段

用途

排他模式:

使用在父和子控制程式碼上

共享模式:

使用在所有的依賴關係物件控制程式碼上

NULL模式:

偵察不可用的狀態

避免再次重新定位(不是太理解)

共享模式:

1、讀取資料的heaps

2、防止依賴物件不被修改

排他模式:

修改資料heaps

鎖的使用

1、這裡說的物件控制程式碼就是一個資源結構

2、鎖結構被動態分配在共享池中

3、型別為LA。。LP

1、這裡說的物件控制程式碼就是一個資源結構

2、鎖結構被動態分配在共享池中

3、型別為NA。。NP

X

X$KGLLK

X$KGLPN

綜述

library cache lock也叫breakable parse lock,是用於控制在請求一個物件控制程式碼鎖的library cache的客戶端之間的併發性。就是說這個鎖就是防止其他的客戶端訪問同一個物件。這個所還能在library cache上定位一個物件。

這個library cache pin是管理cache的一致。pin一個物件能夠造成一個heap載入到記憶體中,(這裡有個疑問難道這個heap就不在記憶體嗎?應該不在,這樣這個heaps或許就可以理解為資料字典上的資料了),如果一個客戶端修改或者檢測一個物件,客戶端必須先請求一個library cache lock到相關的控制程式碼上,然後在pin合適的heap

等待事件

library cache lock

library cache pin

等待週期3秒,PMON1

等待週期3秒,PMON1

等待引數

P1:物件控制程式碼地址

P2:鎖結構地址

P3100*請求模式+namespace#

P1:物件控制程式碼地址

P2pin地址

P3100*請求模式+namespace#

很少,除了pipes和序列

資料字典鎖還有一個型別是row cache locks。這個鎖是對應row cache來說的

row cache用途:

1、儲存的是資料字典上的行

2、是共享池的一部分

3、減少對於system表空間的物理IO次數

4、使用row cache lock來精確控制資料字典行上的鎖

這裡需要說明的是對於一個instance來說,都有一個隱含引數來確定row cache lock的多少,預設為100_ROW_CACHE_INSTANCE_LOCKS

這個鎖也有一個等待事件與之對應:row cache lock

這個鎖等待週期是3秒,等待1000次之後就會放棄。

P1cache id這個與v$rowcache上的cache#相對應

P2:保持的模式

P3:請求的模式

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/222350/viewspace-925875/,如需轉載,請註明出處,否則將追究法律責任。

相關文章