Oracleのメモリを確認
これまで Oracle インスタンスのメモリ関連の初期化パラメータには、
(1) を使用していたが、Oracle11g より (2) のパラメータが追加された。
自動調整機能が実装された
以前は各プールサイズまで細かく設定していたものが、徐々に管理機能され
ついに SGA と PGA の管理まで自動調整可能となったというわけ。
Oracle11g 以降では従来通り (1) で SGA と PGA の垣根を管理しても良いし、
(2) で全体のチューニングを任せても良し。両方がサポートされている。
【例】Oracle 用メモリに2GB割り当て
memory_target = 2000MB memory_max_target = 2000MB sga_max_size = 0 sga_target = 0 pga_aggregate_target = 0
と設定されている場合、起動時には SGA に 60%(1200MB)、PGA に 40%(800MB) 割り振られ、
その後リソースの使用状況に応じて自動チューニングされる仕様となっている。
値の変更方法
これまでと同様、alter system set で行う。
SQL コマンド
SQL> alter system set memory_target = <サイズ> scope = spfile; SQL> alter system set memory_max_target = <サイズ> scope = spfile;
で変更する。この値はインスタンス再起動後に有効となる。
・Oracle 再起動
SQL> shutdown immediate SQL> startup
・memory パラメータの反映を確認
SQL> show parameter memory_
以上で完了。
メモリチューニング
Oracle まかせの自動調整となり、以前と比べて非常に楽になった。
しかしその反面、バッファ単位で細かく設計、チューニングが必要だった頃に
重宝された DBA スキルも、求められる「もの」が変わってきている。