2010年4月5日月曜日

oracle データベースバッファキャッシュ1

来週の水曜にプロジェクトで実施してる勉強会の発表があるので、えふぇくちぶjavaが停止中。
ブログの更新を止めたくないのでjava意外の話題で更新してみます。

---- oracle データベースバッファキャッシュについて ----

データベースバッファキャッシュとは、ディスク(データファイル)への書き込み、読み込みを減らす(ディスクI/Oの低減)目的で使用されるメモリ領域。

ユーザープロセスからデータの要求があると、まず、サーバープロセスは、データベースバッファキャッシュ内のデータを検索する。

キャッシュ内にデータが見つかった場合(キャッシュヒット)、サーバープロセスは、データをメモリから直接読み取ることができる。

キャッシュ内にデータが見つからなかった場合(キャッシュミス)プロセスはデータにアクセスする前に、 ディスク上のデータファイルからキャッシュ内のバッファにデータブロックをコピーする必要がある。

キャッシュヒットによるデータのアクセスは、ディスクI/Oが発生しないため、キャッシュミスによるデータのアクセスよりも高速。

SQLの性能を調べてる時とか、キャッシュをクリアしないと正確な実行時間がわからないので注意。

ALTER SYSTEM FLUSH BUFFER_CACHE

でデータベースバッファキャッシュがクリアされまする。(10gから)
9iの場合はインスタンス停止が必要らしい。ふべんだね!
注意:データベースバッファキャッシュは全てのプロセスで共有されているため、本番環境とかでやると死ねます。

0 件のコメント:

コメントを投稿