最近のOracle(11g)だと、自動メモリ管理という機能があり、SGAやPGAを指定したメモリ内で、任意に割り振ることができます。

例えば、デフォルトでDBインスタンスを作成し、下記のようにメモリが割り当てられていたとすると、

Total System Global Area 3206836224 bytes

Fixed Size          2148680 bytes

Variable Size        1728054968 bytes

Database Buffers     1459617792 bytes

Redo Buffers           17014784 bytes

次のように、OracleのMEMORY_TARGETとMEMORY_MAX_TARGETを指定することで

$ export ORACLE_SID=suzlab1

$ sqlplus / as sysdba;

SQL> ALTER SYSTEM SET MEMORY_TARGET = 1024M SCOPE = SPFILE;

SQL> ALTER SYSTEM SET MEMORY_MAX_TARGET = 1024M SCOPE = SPFILE;

下記のように、指定したメモリ内で任意に割り当てられるようになります。

Total System Global Area 1068937216 bytes

Fixed Size          2151248 bytes

Variable Size         599788720 bytes

Database Buffers      461373440 bytes

Redo Buffers            5623808 bytes

※Oracleリスタート後の結果です。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら