MEMORY_TARGETは、SGAとPGAの両方を含め、Oracleシステム全体の使用可能なメモリーを指定します。Oracle Databaseリリース11gより前では、SGAおよびPGAを別個にチューニングする必要がありました。
データベースをOracle 10gから11gにアップグレードする場合、Oracle 10gデータベースのSGA_TARGETとPGA_AGGREGATE_TARGETを加算してMEMORY_TARGETを求めることができます。
データベースをOracle 9iから11gにアップグレードする場合、DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZEなどのすべてのSGAコンポーネントとPGA_AGGREGATE_TARGETを加算してMEMORY_TARGETを求めることができます。
データベースが以前のバージョンからアップグレードされておらず、履歴参照がない場合、システム・リソースおよびシステム制限に応じて、このパラメータを1から3GBに初期設定することをお薦めします。データベースをしばらくの間使用した後、このパラメータを次のように調整できます。(このチューニングは前述の2つのアップグレード・シナリオにも適用されます)。
SQL> select * from v$memory_target_advice order by memory_size;
MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION
180 .5 458 1.344 0
270 .75 367 1.0761 0
360 1 341 1 0
450 1.25 335 .9817 0
540 1.5 335 .9817 0
630 1.75 335 .9817 0
720 2 335 .9817 0
MEMORY_SIZE_FACTORが1の行には、MEMORY_TARGET初期化パラメータで設定した現在のメモリーのサイズと、現在のワークロードを完了するのに必要なDB時間が表示されます。前後の行の結果には、代替MEMORY_TARGETサイズの数値が表示されます。代替サイズごとに、データベースのサイズ係数(現在のサイズの倍数)と、MEMORY_TARGETパラメータが代替サイズに変更された場合に現在のワークロードを完了するための推定DB時間が表示されます。現在のMEMORY_TARGETサイズ(この例では360)より合計メモリー・サイズが小さいほど、推定DB時間(ESTD_DB_TIME)が増えます。また、この例では、ESTD_DB_TIME値が減らないため、合計メモリー・サイズを450MBを超えて増やしても何も得られません。したがって、この例では、推奨MEMORY_TARGETサイズは450MBです。