LoginSignup
0

More than 3 years have passed since last update.

oracleの共有プール(shared pool)

Posted at

共有プール(shared pool)とは

SGA(システムグローバル領域=共有メモリ領域)の一つ

SGAは下記の要素で構成されている。

  • データベースバッファキャッシュ
  • REDOログバッファ(データの変更履歴を保持する)
  • ラージプール
  • javaプール
  • ストリームプール
  • ★共有プール★

共有プール(shared pool)の中身

下記の要素で構成されている。
共有プールのキャッシュ上に一度アクセス、解析した内容をおいておくことで
複数回のSQL実行時の処理削減を行なっている。

  • ライブラリキャッシュ
      共有SQL領域、PL/SQP領域を含むメモリ構造、実行計画の結果など
      複数回実行時の解析作業をメモリに置き、処理を削減している領域

  • ディクショナリキャッシュ (行キャッシュ)
      表列の定義、ユーザ名、パスワード、アクセス権限などを記録している

  • その他

共有プール(shared pool)の開放

共有プールがあることで、SQLは一度目の実行と二度目の実行で
性能に大きな差が出てしまう。
そのため共有プールの開放を行い性能測定をするのがベター。
また、共有プールの断面化によりORA-04031の発生
(ORA-04031: 共有メモリーのXXXXバイトを割当てできません)
時にも有効

ALTER SYSTEM FLUSH SHARED_POOL;

共有プールのサイズ確認

SELECT * FROM v$sgastat WHERE name = 'free memory' AND pool = 'shared pool';

参考
V$表(動的パフォーマンスビュー) oracleの動的なステータスが確認できる名称の規則
sga=system global area
stat=状態

参考にしたサイト

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0