1. 程式人生 > >oracle 自動記憶體管理

oracle 自動記憶體管理

oracle記憶體結構一般指的是SGA和PGA(當然還有UGA)。自動記憶體管理是指自動管理SGA和PGA
一、自動PGA記憶體管理
使用自動PGA記憶體管理,這種方法就不需要設定PGA內部其他記憶體大小,比如 SOR_AREA_SIZE ,BITMAP_MERGE_SIZE,HASH_AREA_SIZE 等.
建立自動PGA記憶體管理,需要設定兩個引數 :
WORKAREA_SIZE_POLICY:這個引數有兩個值,分別是MANUAL和AUTO,如果是AUTO值,表示分配的記憶體量會在PGA內部自動變化,預設值為AUTO
PGA_AGGREGATE_TARGET:表示分配的PGA記憶體量大小

所以如果在資料庫中把WORKAREA_SIZE_POLICY設定為預設值AUTO並且PGA_AGGREGATE_TARGET引數設定不為0那麼資料庫將處於自動PAG記憶體管理狀態。這兩個引數可以用alter system set……來修改

二、自動SGA記憶體管理
自動記憶體管理模式下設定SGA_TARGET值不為0,那麼資料庫將處於自動SGA記憶體管理,在些還要注意一個引數SGA_MAX_SIZE,這個引數是指自動記憶體管理模式下,SGA能在到最大值的引數,預設情況下SGA_MAX_SIZE等於SGA_TARGET.這個引數的修改要在資料開啟之前才能修改。

三、自動記憶體管理
在自動記憶體管理當中,只需要設定一個引數MEMORY_TARGET,這個引數的值指的是SGA和PGA被分配到的總記憶體的上限值,並且此時可以通過修改SGA_TARGET和PGA_AGGREGATE_SIZE來控制SGA和PGA的最小值.

當資料庫在自動記憶體管理狀態下執行一段時間後,那麼它就會把資料庫執行最優記憶體記憶體大小值記錄到SPFILE中,下資料庫啟動的時候就使用這些引數值