topimg.jpg


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Oracleのキャッシュ構成

キャッシュ

●システムグローバル領域(SGA)
 下記①~⑥の情報を、全てのサーバプロセス、バックグラウンドプロセスで共有する。

 SGA_TARGETにて自動管理の有無、SGA_MAX_SIZEにて最大値を設定できる。自動管理にした場合は、DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、STREAMS_POOL_SIZEが自動でサイズが調整されるが、LOG_BUFFERは自動管理の対象外である。

①データベースバッファキャッシュ
 データファイルから読み込んだブロックを保持する。また、サーバプロセスによって更新されたデータを、データファイルに反映するまで保持する。
②共有プール
・ライブラリキャッシュ(共有SQL領域)
 SQLのハード解析結果や実行計画を保持する。
・データディクショナリキャッシュ
 データベースのオブジェクトに関する構成情報や統計情報を保持する
・サーバ結果キャッシュ
 SQLの問い合わせ結果セットを保持する
・予約プール
 5KBより大きいデータをOracleが利用する際、それらのデータを連続したチャンクとして保持する
③REDOログバッファ
 REDOエントリを、REDOログに書き込むまで保持する。
④ラージプール
 「共有サーバのセッション情報」「I/Oスレーブ(OSの非同期IOをシミュレートすることによって、データファイルへの書き込みを非同期で行うプロセス)」「Recovery Manager(RMAN)」に関連する情報を保持する。
⑤Javaプール
 javaのストアドプロシージャ等、JVM内の全セッションで利用するデータを保持する
⑥ストリームプール
 Oracle Streams(メッセージキューイングやデータレプリケーションを提供する機能)で使用するデータを保持する


●プログラムグローバル領域(PGA)
 下記①~③の情報を、各サーバプロセス、バックグラウンドプロセス個別で利用する。
 PGA_AGGREGATE_TARGETを指定することによって自動管理の有無と最大値を設定できる。自動管理にした場合は、SORT_AREA_SIZE、HASH_AREA_SIZEなどが自動でサイズ調整される。

①SQL作業領域(※1)
・ソート領域
 ORDER BY、GROUP BY等のソート処理や、ソート/マージ結合に必要な作業領域を保持する
・ハッシュ領域
 ハッシュ結合でハッシュ表を作成する際に必要な作業領域を保持する
・ビットマップマージ領域
 ビットマップ索引スキャンで取得したビットマップをマージする際に必要な情報を保持する
②プライベートSQL領域(≒カーソル)(※2)
 カーソルは「SQL問合せ結果を一時的に蓄えておく領域」のようなものである。カーソルが保有するポインタ情報を元に、アプリケーションがSQL問合せ結果をより詳細な形で(複数結果のセットに対して1行ずつ等)取得することが可能になる。
 1セッションが利用できるプライベートSQL領域の数は初期化パラメータOPEN_CURSORSによって指定する。また、初期化パラメータCURSOR_SHARINGにて、同じカーソルを共有する為のSQL文の判定基準を指定することによって、バインド変数を使用していないSQLでもバインド変数と同等の効果を得ることができる。
 プライベートSQL領域は、下記2種類の領域を保持する。
・ランタイム領域
 SQLの実行状態情報を保持する。フルスキャンが現在何行まで行われたか等、リアルタイムのSQL情報が格納される。SQL文が完了すると、ラインタイム領域は解放される。
・持続領域
 SQLのバインド情報を保持する。カーソルがクローズするまで情報が保持される。
③セッションメモリ(※3)
 ユーザグローバル領域(UGA)と呼ばれる、ユーザのセッションに関する情報を保持する

(※1)専用サーバ接続のときのみPGAに格納される。共有サーバ接続の際は、(SORT_AREA_SIZEとSORT_AREA_RETAINED_SIZEを同じ値に設定することによって)ラージプールに格納される。
(※2)持続領域の位置に関しては、専用サーバ接続の場合のみPGAに格納される。共有サーバ接続の場合は、SGAの中に確保される。ランタイム領域に関しては、いずれの場合もPGAに格納される。
(※3)専用サーバ接続のときのみPGAに格納される。共有サーバ接続の際は、SGAにに格納される。



参考
Oracle Database概要 11gリリース2(11.2)
14 メモリー・アーキテクチャ
http://download.oracle.com/docs/cd/E16338_01/server.112/b56306/memory.htm
SGAのメモリ自動管理(SGA_TARGET)
http://oracle.se-free.com/tuning/B3_sga_target.html
PGAのメモリ自動管理(PGA_AGGREGATE_TARGET)
http://oracle.se-free.com/tuning/B3_pga_aggregate_target.html
最大カーソル数( OPEN_CURSORS )
http://oracle.se-free.com/tuning/B6_open_cursors.html
カーソル共有方式( CURSOR_SHARING )
http://oracle.se-free.com/tuning/B6_cursors_sharing.html
12.2. カーソル
http://www.techscore.com/tech/sql/12_02.html


スポンサーサイト
  1. 2010/03/14(日) 10:26:50|
  2. oracle
  3. | トラックバック:0
  4. | コメント:0
<<Oracleのデータ構造について | ホーム | REDOログ概要>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://192168111.blog71.fc2.com/tb.php/35-98f95749
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。