Oracle OCP之硬解析在共用池中擷取記憶體鎖的過程,oracleocp
轉載請註明出處:http://blog.csdn.net/guoyjoe/article/details/38684819
1、獲得library cache Latch
(1)在父遊標的名柄沒有找到SQL語句的文本:select * from gyj_t1 where id=1;
2、釋放library cache Latch
3、獲得shared pool Latch
(1)搜尋FreeList 空閑Chunk
(2)搜尋LRU上可覆蓋的chunk
(3)搜尋R-FreeList 空閑Chunk
(4)如果沒空間了,直接ORA-04031錯誤
4、釋放shared pool Latch
5、 重新擷取library cache Latch (oracle 11g:library cache mutex)
6、擷取library cache lock Latch (oracle 11g:library cache mutex)
7、 釋放library cache Latch(oracle 11g:library cache mutex)
8、擷取library cache lock ----》保護父遊標的名柄(SQL語句文本,父遊標H0的地址)
9、釋放library cache lock Latch
10、擷取library cache Pin Latch
11、擷取library cache Pin --》保護父遊標的H0(父遊標的H0裡面主要記錄了子遊標的名柄)
12、釋放library cache Pin Latch (oracle 11g:cursor mutex)
13、擷取library cache lock Latch
14、擷取library cache lock ----》保護子遊標的名柄(子遊標H0的地址)
15、釋放library cache lock Latch
16、擷取library cache Pin Latch
17、擷取library cache Pin --》保護子遊標的H0(子遊標的H0裡面主要記錄了環境,統計資訊,綁定變數)
18、釋放library cache Pin Latch
19、擷取library cache Pin Latch
20、擷取library cache Pin --》保護子遊標的H6(子遊標的H6裡面主要記錄了執行計畫)
21、釋放library cache Pin Latch
問怎設定oracle共用池,java池,這些個數值的大小?
同志,這些數值的大小設定是一個比較複雜的問題,特別是在低版本的ORACLE。
建議今後提問題時加上oracle的版本資訊和作業系統資訊。
回過頭來說說這些記憶體大小的分配。
我們考慮一般性的情境。
首先要考慮的是你的主機有多大記憶體,
再考慮你的主機是否專用於資料庫。
如果你的主機專用於資料庫,
則一般 共用池+緩衝區+JAVA池+大型池合起來不要超過主機記憶體的55%。
此時要注意你的作業系統是64位還是32位,這兩種情況ORACLE能夠使用的記憶體上限也完全不同。
往下咱們再來細說共用池 緩衝區 JAVA池 大型池 的分配。
這些池的分配要根據你這個資料庫的應用情境來配置。
如果是資料倉儲類資料庫,則緩衝區要設到盡量大。
如果是交易類資料庫,則共用池可勻量多分配一些。
具體數值大小還請多到網上參閱大量相關資料後自己再做定奪。
如果實在沒空深入學習,可先按典型配置,並將百分比調高至80%為宜(專用資料庫伺服器)。
平常運行過程中還得再根據資料庫監控報告 (如statspack和awr)做調整最佳化。
非一時一日之功。
Oracle OCP認證的尺寸多大?
與A4紙差不多,比A4紙略短大約1厘米