1.7 専用モード・セッションのメモリー・モデル

Oracle Database 10g以降のOracle JVMには、専用サーバーを介してデータベースに接続するセッション用に新しいメモリー・モデルが用意されています。Oracleに関連する基本的なメモリー構造を次に示します。

  • システム・グローバル領域(SGA)

    SGAは、SGAコンポーネントと呼ばれる共有メモリー構造のグループで、1つのOracle Databaseインスタンスのデータと制御情報が含まれます。SGAは、すべてのサーバー・プロセスとバックグラウンド・プロセスで共有されます。SGAに格納されるデータには、キャッシュ・データ・ブロックや共有SQL領域などがあります。

  • プログラム・グローバル領域(PGA)

    PGAは、サーバー・プロセスのデータおよび制御情報が含まれるメモリー領域です。これは、サーバー・プロセスの起動時にOracleで作成される非共有メモリーです。PGAへのアクセスは、サーバー・プロセスごとに排他的です。各サーバー・プロセスごとに1つのPGAが存在します。バックグラウンド・プロセスにも独自のPGAが割り当てられます。1つのOracleインスタンスに付随するすべてのバックグラウンド・プロセスおよびサーバー・プロセスに割り当てられるPGAメモリーの合計は、PGA総計と呼ばれます。

メモリーを管理するには、データベースによって自動的に管理およびチューニングする方法が最も簡単です。これを実行するには、ほとんどのプラットフォームの場合、ターゲット・メモリー・サイズ初期化パラメータ(MEMORY_TARGET)と最大メモリー・サイズ初期化パラメータ(MEMORY_MAX_TARGET)のみを設定します。データベースでターゲット・メモリー・サイズにチューニングされ、必要に応じてSGAとPGA総計との間でメモリーが再分配されます。ターゲット・メモリー初期化パラメータは動的であるため、データベースを再起動せずにいつでもターゲット・メモリー・サイズを変更できます。ユーザーがターゲット・メモリー・サイズの設定を誤って高くしすぎないように、最大メモリー・サイズが上限として機能します。また、一部のSGAコンポーネントは簡単に縮小できないか、または最小サイズに抑える必要があるため、データベースではユーザーがターゲット・メモリー・サイズの設定を低くしすぎないようにします。