データベースバッファキャッシュのチューニング(1) --- アーキテクチャ

  • バッファ管理方法
    • LRUリスト:最近使用されたブロックを管理する
    • 使用済みリスト:データブロックの内容は変更されたが、まだディスクに書き出してないブロックを管理する
  • データブロックの状態
    • 空きバッファ:ディスク=メモリ(再利用可)
    • 使用済みバッファ:ディスク≠メモリ(再利用不可)
    • 確保済みバッファ:アクセス中

※データベースバッファキャッシュは1つのバッファが1つのデータブロックに対応する。1つのデータブロックのコピーは1つだけだが、読み取り一貫性のために、変更前のブロックイメージが作成されていることもある。

  • DBWnがディスクに書き込むタイミング
    • 使用済みリストがしきい値を超えた場合
    • LRUリストの検索しきい値を超えた場合
    • 3秒毎のタイムアウト
    • チェックポイント(LGWRからDBWnに通知される)
    • 表領域のOFFLINE(IMMEDIATE以外)
    • バックアップモードの開始
    • データベースの停止(ABORT以外)
  • 動的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は静的パラメータ。また、上記の動的パラメータとの併用はできない。