レック・テクノロジー・コンサルティング株式会社TECH BLOG

Oracleが使用するメモリ領域(PGA)

初めましての方もそうでない方も宜しくお願い致します。
レック・テクノロジー・コンサルティングのエンジニア「佐々木」にございます。

前回はOracleが使用するメモリ領域の主な片割れ、SGAにつきまして説明させて頂きました。
今回、もう一方のPGAについて述べさせて頂きます。

以下、今回の内容となります。

・PGAとは?
・PGAの構成要素は?
・自動管理について

PGAとは?

 
PGA (Program Global Area)は、サーバ・プロセスが起動された際に確保されるメモリ領域です。
サーバ・プロセスは、ユーザが投げる要求を処理し、結果をユーザに戻す機能を有します。
確保されたPGAは非共有であり、対応するサーバプロセス以外からのアクセスはできません。

PGAは対応するサーバ・プロセスが終了した際に解放されます。

PGAの構成要素は?

 
PGAは、一般的に以下の図に示すような領域から構成されています。

・セッション情報
 セッションに対するユーザーの権限に関する情報です。

・カーソル状態
 現在のセッションで使用している、様々なカーソルの処理状態に関する情報です。

・スタック空間
 セッション変数(ログイン情報)を格納しています。

・ソート領域
 複雑な問い合わせを行った際に使用される領域です。
 以下、それぞれについて領域が割り当てられ、処理が実施されます。

 >>ソートベースの演算子(ORDER BY、GROUP BY等)
 パラメータSORT_AREA_SIZEでサイズ指定します。
 ソートに使用される領域であり、最終行を返したタイミングで解放されます。

 >>ハッシュ結合 
 パラメータHASH_AREA_SIZEでサイズ指定します。
 等価である値を結合に用いる際に使用される領域です。

 >>ビットマップ・マージ
 パラメータBITMAP_MERGE_AREA_SIZEでサイズ指定します。
 ビットマップ索引を含む問い合わせが実施された際、
 索引をスキャンした結果取り出されるビットマップをマージするために使用されます。

 >>ビットマップ作成
 パラメータCREATE_BITMAP_AREA_SIZEでサイズ指定します。
 ビットマップ作成時に割り当てる領域です。

自動管理について

 
リファレンスマニュアルに記載されている通り、○○_AREA_SIZEの各種パラメータは
共有サーバ構成ではない状態では推奨されておりません。

<マニュアルより抜粋>
----------------------------------------------------------------
インスタンスが共有サーバーのオプションで構成されていないかぎり、
SORT_AREA_SIZE パラメータを使用することはお薦めしません。
かわりに、PGA_AGGREGATE_TARGET を設定して、SQL 作業領域の自動サイズ指定
を使用可能にすることをお薦めします。
SORT_AREA_SIZE は、下位互換性を保つために残されます。
----------------------------------------------------------------
※共有サーバについては、別の回で扱われる予定です

PGAの自動メモリの割り当てをするには、パラメータPGA_AGGREGATE_TARGETを設定します。
PGA_AGGREGATE_TARGETを0以外の値に設定した場合、一部のメモリ領域のサイズを必要に応じてOracleが自動的に変更します。

11gからは更にこの自動管理機能が強化されてMEMORY_TARGETというパラメータが登場していますが、こちらについては以前の回をご覧ください。

まとめ

 
・PGAとは、各サーバ・プロセスが独自に保有するメモリ領域です。

・PGAは主にセッション情報/カーソル状態/スタック空間/ソート領域から構成されます。

PGA_AGGREGATE_TARGETを0以外の値に設定することで、PGAの自動管理が有効になります。

・更に11gからはSGA、PGAの自動管理パラメータとしてMEMORY_TARGETがあります。

最後に

 
以上、Oracleが使用するメモリ領域のうちPGAについて説明させて頂きました。

なお、今回をもちまして私の担当箇所は終了となります。
長々とお付き合い頂きまして、誠に恐縮でございます。

マニュアルや関連情報を漁る度に、改めて自分の不勉強を痛感しておりましたが、
逆に、だからOracleはやめられないなどと浮かぶ始末でもありました。

今後、またこういった企画があれば、参加させて頂くこともあると思われますが、
その際は、再度宜しくお願い致します。

では、失礼致します。

この記事をシェアする

  • Facebook
  • X
  • Pocket
  • Line
  • Hatena
  • Linkedin

資料請求・お問い合わせはこちら

ページトップへ戻る