Share Pool理解

yezhibin發表於2009-06-18
         最近比較關注共享池,昨天看了metalink 396940.1 Troubleshooting and diagnosing ORA-4031 error。把我比較趕興趣的內容總結如下:

一、chunk型別:
           
      1、Normal(Freeable) chunks: 分配給使用者的chunk一旦使用完就能釋放;
     
      2、Free chunks: 不說也知道

      3、Recreatable chunks: 這些chunk放在LRU列表中,一旦需要可以回收使用。

      4、Permanent chunks: 只要instance存在,他們是長期存在共享池

二、subpool 見前一篇介紹

三、Reserved Area:
        
      1、預設5%的共享池空間分配給Reserved pool,由引數_share_pool_reserved_pct引數控制

       2、分配順序
              a) 從共享記憶體非保留部分分配空間
              b) 如果沒有足夠空間,就從共享池保留空間分配
              c) 如果還是沒有足夠空間,清理LRU Recreatable記憶體,然後在迴圈a和b

四、share pool包含什麼

        1、包含library cache, dictionary cache, buffers for parallel execution messages。

        2、library cahce 包含了shared SQL area, private SQL area(shared server配置情況), PL/SQL package和procedure, control structure 如locks和library cache handle

      3、RMAN, 並行處理和shared server使用共享記憶體,建議設定large_pool_size轉移共享池的使用壓力。

      4、share pool使用LRU演算法

      5、設定SGA_TARGET>0,將通過MMAN程式,影響db_cache_buffer, shared_pool_size, large_pool_size, streams_pool_size, java_pool_size。
 
五、檢查reserved area size大小是否合適

  SQL>select used_space, requests,
                         request_failures, request_misses,
             from v$shared_pool_reserved;
  
   request_misses=0, reserved size可能設定太大;
   request_misses一直提高, request_failures一直沒提高,
          
 

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

相關文章