
共有プールとは?
Oracleインスタンスの中の、SGA(システム・グローバル領域)の中に存在する領域の一つです。
共有プールの構造
共有プールは、主に「ライブラリキャッシュ」と「データ・ディクショナリキャッシュ」に分かれます。
ライブラリキャッシュ
共有SQL領域(解析済みSQL情報)
「SQLの解析結果」と、「実行計画」が含まれる。解析を行う際に、この領域に同一SQLの解析済みの結果が含まれていれば、Oracleはそれを利用します。
なお、同一のSQLかどうかは、SQLのテキストで比較をされます。
プライベートSQL領域
ランタイム領域
SQLの実行時に使用する情報が含まれています。大部分が、ソート等の作業領域に使われて、SQL実行後に解放されます。
持続領域
対応するカーソルがクローズされるまで格納されます。
メモリ節約のためには、プログラム側で、再び使うことがないカーソルはクローズすべきです。
データ・ディクショナリ・キャッシュ
SYSTEM表領域にある「データディクショナリ」の情報が格納されています。
具体的には、Oracle内部の構成情報(直近で使われたテーブル列の定義、ユーザー名、パスワード、権限等の情報)が格納されます。
データディクショナリキャッシュのメリット
データディクショナリの情報は、様々な処理で呼び出されます。
この領域にキャッシュしておくことで、ディスクアクセスの回数を減らして、パフォーマンスの向上を図ることができます。
共有プールのキャッシュ情報が削除されるタイミング
Oracleは、共有プールに保管された情報はLRUリストで管理しています。
なので、もし新しい情報を共有プールに書き込まなくてはいけなくなった場合は、「使用されてから最も時間が経過したデータ」を削除するアルゴリズムになっています。
この記事へのコメントはありません。