データベースバッファキャッシュのチューニング(1) --- アーキテクチャ
- バッファ管理方法
- LRUリスト:最近使用されたブロックを管理する
- 使用済みリスト:データブロックの内容は変更されたが、まだディスクに書き出してないブロックを管理する
- データブロックの状態
- 空きバッファ:ディスク=メモリ(再利用可)
- 使用済みバッファ:ディスク≠メモリ(再利用不可)
- 確保済みバッファ:アクセス中
※データベースバッファキャッシュは1つのバッファが1つのデータブロックに対応する。1つのデータブロックのコピーは1つだけだが、読み取り一貫性のために、変更前のブロックイメージが作成されていることもある。
- DBWnがディスクに書き込むタイミング
- 動的SGA
- データベースバッファキャッシュを決める以下の初期化パラメータはalter systemで動的に変更できる
DB_CACHE_SIZE | SYSTEM表領域、一時表領域で使用される標準ブロックサイズ(DB_BLOCK_SIZE)で構成されるキャッシュ。複数バッファプールの場合DEFAULTバッファプール。 |
DB_KEEP_CACHE_SIZE | 複数バッファプールの場合のKEEPバッファプール |
DB_RECYCLE_CACHE_SIZE | 複数バッファプールの場合のRECYCLEバッファプール |
DB_nK_CACHE_SIZE | 非標準ブロックサイズの表領域のためのメモリを構成する。非標準ブロックサイズの表領域を作るばあいは、このパラメータを設定しておかなければならない。 |
※8i以前の初期化パラメータDB_BLOCK_BUFFERS、BUFFER_POOL_KEEP、BUFFER_POOL_RECYCLEは静的パラメータ。また、上記の動的パラメータとの併用はできない。