GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

Oracle データベース アーキテクチャ(PGA)

f:id:undercovergeek:20200707201210p:plain

プログラムグローバルエリア(PGA)は、サーバーとバックグラウンドプロセスでのみ使用されるデータと制御情報を含む非共有メモリ領域。
Oracle Databaseは、クライアント・プログラムにかわってデータベースへの接続を処理するサーバー・プロセスを作成する。
専用サーバー環境では、開始されるサーバーおよびバックグラウンドプロセスごとに1つのPGAが作成される。
各PGAは、スタックスペース、ハッシュ領域、ビットマップマージ領域、およびユーザーグローバル領域(UGA)で構成される。
PGAは、関連するサーバーまたはそれを使用するバックグラウンドプロセスが終了すると割り当て解除される。

共有サーバー接続

複数のクライアントユーザーがサーバープロセスを共有する。
UGAは大きなプールに移動され、PGAにはスタックスペース、ハッシュ領域、およびビットマップマージ領域のみが残る。

専用サーバー接続

PGAは次のコンポーネントで構成される。
- SQL作業域:ソート域は、ORDER BYやGROUP BYなどのデータを順序付ける関数によって使用される。
- セッションメモリ:このユーザーセッションデータストレージ領域は、ログオン情報やデータベースセッションで必要なその他の情報などのセッション変数に割り当てられる。
- OLAPプール:データブロックに相当するOLAPデータページを管理する。
- プライベートSQL領域:この領域には、解析されたSQLステートメントに関する情報と、処理のためのその他のセッション固有の情報が保持される。
サーバープロセスがSQLまたはPL/SQLコードを実行すると、プロセスはプライベートSQL領域を使用して、バインド変数値、クエリ実行状態情報、およびクエリ実行作業領域を格納する。
同じまたは異なるセッションの複数のプライベートSQL領域は、SGAの単一の実行プランを指すことができる。
永続領域にはバインド変数値が含まれている。
ランタイム領域には、クエリ実行状態情報が含まれている。
カーソルは、プライベートSQL領域の特定の領域への名前またはハンドル。カーソルは、クライアント側ではポインタとして、サーバー側では状態と考えることができる。
カーソルはプライベートSQL領域と密接に関連しているため、これらの用語は同じ意味で使用される場合がある。
- スタック領域:スタックスペースは、セッション変数と配列を保持するために割り当てられたメモリ。
- ハッシュ領域:この領域は、テーブルのハッシュ結合を実行するために使用される。
- ビットマップマージ領域:この領域は、複数のビットマップインデックスのスキャンから取得したデータをマージするために使用される。

スポンサーリンク