共有プール(shared pool)とは
SGA(システムグローバル領域=共有メモリ領域)の一つ
SGAは下記の要素で構成されている。
- データベースバッファキャッシュ
- REDOログバッファ(データの変更履歴を保持する)
- ラージプール
- javaプール
- ストリームプール
- ★共有プール★
共有プール(shared pool)の中身
下記の要素で構成されている。
共有プールのキャッシュ上に一度アクセス、解析した内容をおいておくことで
複数回のSQL実行時の処理削減を行なっている。
-
ライブラリキャッシュ
共有SQL領域、PL/SQP領域を含むメモリ構造、実行計画の結果など
複数回実行時の解析作業をメモリに置き、処理を削減している領域 -
ディクショナリキャッシュ (行キャッシュ)
表列の定義、ユーザ名、パスワード、アクセス権限などを記録している -
その他
共有プール(shared pool)の開放
共有プールがあることで、SQLは一度目の実行と二度目の実行で
性能に大きな差が出てしまう。
そのため共有プールの開放を行い性能測定をするのがベター。
また、共有プールの断面化によりORA-04031の発生
(ORA-04031: 共有メモリーのXXXXバイトを割当てできません)
時にも有効
共有プールのサイズ確認
SELECT * FROM v$sgastat WHERE name = 'free memory' AND pool = 'shared pool';
参考
V$表(動的パフォーマンスビュー) oracleの動的なステータスが確認できる名称の規則
sga=system global area
stat=状態
参考にしたサイト