Oracle Databaseのメモリ構造について

この記事ではOracle Databaseのメモリ構造について解説します。

 Oracle Databaseのメモリ構造

Oracle Databaseのメモリ構造は大きく次の2つの領域で構成されています。

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

データベース全体で使用するメモリ領域です。

共有メモリとも呼ばれ、すべてのサーバ、バックグラウンドプロセスで共有されています。

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

ユーザ(セッション)ごとに使用する領域です。

サーバプロセスやバックグラウンドプロセスごとに存在します。


 SGAの構成

SGAは役割に応じてさまざまなコンポーネントに分類されます。

主なコンポーネントは以下の5つになります。

・REDOログバッファ

REDOログファイルに書き込む前のREDOデータを一時的に保管します。

・バッファキャッシュ

データファイルから読みこんだブロックをキャッシュします。

更新されたブロックをデータファイルに書き込むまでの一時的に保管します。

・共有プール

解析済みSQLやデータディクショナリの情報をキャッシュします。

・Javaプール

Javaで記載されたストアドプログラムを実行する際に使用されるメモリ領域です。

・ラージプール

並列処理など大量のメモリを割り当てる際に使用されるメモリ領域です。


 PGAの構成

PGAは主に下記の2つの要素から構成されています。

・SQL領域

SQL実行時にソートなどをする際に利用されるメモリ領域です。

・セッションメモリ

セッション情報を格納するメモリ領域です。

共有サーバ接続ではSGA内に確保されます。