バッファ・キャッシュ関連のラッチにはこんなのがあるそうです。
cache buffers chains
....................
アクセスしたいブロックがバッファ・キャッシュ上に存在するかどうかを確認する
際に必要とするラッチです。
競合の発生はバッファ・キャッシュのサイズにも影響を受けますが、特定のブロック
へのアクセスが集中すると、そのブロックのバッファを保護しているラッチに対する
負荷が高くなります。
cache buffers lru chain
.......................
バッファ・キャッシュに新しいブロックをディスクから読み込むために再利用可能な
バッファを探す場合や、DBWRプロセスが古くなったダーティ・バッファを書き出そうと
する場合に必要とするラッチです。
Oracle8iまでのバージョンでは、db_block_lru_latchesパラメータを調整すること
によってこのラッチでの競合をチューニングできますが、Oracle9iではこのパラメータ
は廃止されています。
- ログ・バッファ関連
redo allocation
...............
redoログ・バッファにredoエントリを書き込むための領域確保を行う場合に必要とする
ラッチです。
NOLOGGINGオペレーションを活用することによって競合を回避することができます。
redo copy
.........
redo allocationラッチのもとで確保したログ・バッファ領域に実際にredoエントリを
書き込む場合に必要とするラッチです。
CPU数に合わせて自動的に適切な数のラッチが確保されます。
- 共有プール関連
row cache objects
.................
ディクショナリ・キャッシュにアクセスする場合に必要とするラッチです。
競合を低減するには、SHARED_POOL_SIZEパラメータを調整して下さい。
library cache
..............
ライブラリ・キャッシュへのアクセスを直列化するためのラッチです。
SQL文やPL/SQLブロック、ストアド・ファンクション等が実行される度に、
このラッチを必要とします。
競合を低減するには、バインド変数の使用やSQL記法の統一によって、できるだけ
ライブラリ・キャッシュ上の情報を共有できるようにします。
shared pool
...........
共有プール内でのメモリ割り当てで必要とするラッチです。
library cacheラッチと同様にSQLのチューニングを行った上で、必要に応じて
SHARED_POOL_SIZEパラメータの調整を行います。
最近のコメント