oracle11g中的幾個記憶體初始化引數

pingley發表於2012-02-22
oracle11g中的幾個記憶體初始化引數
memory_max_target初始化引數(advanced,在oracle11g中才有該引數)設定啟用oracle記憶體自動化管理
(automatic memory management,AMM)的記憶體大小。預設值是0,即不啟用該新特性。該引數的取值範圍是
0到oracle資料庫可用的最大記憶體。該引數是memory_target可以設定的最大值。該引數是靜態初始化引數
修改的時候需要使用 scope=spfile。
memory_target引數化引數(advanced),設定oracle整個系統可以使用的記憶體大小,oracle將會根據memory_target的值自動的調整SGA與
PGA的值。該引數是動態初始化引數,預設值是0,取值範圍是152MB到memory_max_target引數指定的值。
sga_target初始化引數(basic),設定所有的SGA元件的大小。預設值是0,最小是64M,值的範圍取決於作業系統。
如果指定了該引數,以下記憶體池將會自動的調整大小。
1、buffer cache(db_cache_size)
2、shared pool(shared_pool_size)
3、large pool(large_pool_size)
4、java pool(java_pool_size)
5、sterams pool(stream_pool_size)
sga_target指定的該引數是SGA ASSM(Automatic Shared Memory Management.)的最小值。但是以下SGA元件不受ASSM的影響
1、log buffer
2、其他緩衝區,比如keep,recycle,非標準塊緩衝區
3、fixd SGA與其他內部分配
sga_target的值減去這些不受ASSM影響的SGA元件的記憶體總量,剩餘的記憶體是用於ASSM管理。
可以使用alter system動態修改sga_target的大小。
在啟用oracle記憶體自動化管理以後,即使sga_target設定為0,SGA的管理也還是ASSM方式。
pga_aggregate_target初始化引數(basic),設定所有的服務程式(server processes)可用的PGA大小。
該引數的預設值是10M與SGA的20%中的較大值。該引數的取值範圍是10M到4096GB - 1。設定該引數為非零時
workarea_size_policy的值將會設定為auto,這時候SQL工作區的大小將會自動的調整。如果該值
設定為0,那麼workarea_size_policy的值將會設定為manual,那麼SQL工作區的大小將會使用*_area_size
引數。
pga_aggregate_target
是動態初始化引數。
但是在啟用了oracle記憶體自動化管理以後,即使設定pga_aggregate_target的值為0,workarea_size_policy
也是auto的。
SQL> show parameter  pga_aggregate_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------
pga_aggregate_target                 big integer 0
SQL> show parameter workarea_size_policy
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------
workarea_size_policy                 string      AUTO
注:
oracle記憶體管理自動化管理的方式有:AMM,ASSM, automatic PGA memory management。
他們管理的範圍與領域不同,但是個人認為這些方法優於手動管理,因為自動化管理基於各種各樣的
統計值與複雜的資料模型來調整例項記憶體中各元件的大小。比手工的方式更簡單,及時,高效。

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

相關文章