最近の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リスタート後の結果です。