buffer busy waits: 待機: 別セッションが読み取り中または変更中のバッファをめぐる競合
Oracle意味
セッションが、別セッションが同時に読み取りまたは変更しているバッファブロックへのアクセスを待っている。これはメモリ上のブロック競合である。
原因
ホットブロックへの集中、単調増加キーを持つインデックスの右端での競合、不十分な freelist/非 ASSM セグメント、または同じブロックへの大量の同時 DML。
対処方法
影響を受けているセグメントとブロッククラスを特定する (v$session、v$segment_statistics、ASH)。ホットなインデックスブロックには逆キーインデックスまたはハッシュパーティションインデックスを検討する。ASSM (Automatic Segment Space Management) を使う。高い同時実行下では INITRANS/PCTFREE を増やす。アプリケーションのアクセスパターンを分散させる。
同じデータベースの他の項目
- log file sync待機: コミット時に LGWR が redo をディスクにフラッシュするのをセッションが待っている
- db file sequential read待機: 単一ブロックの物理読み取り。通常はインデックスまたはテーブルの参照
- db file scattered read待機: マルチブロックの物理読み取り。通常は全表スキャンまたはインデックス高速全スキャン
- gc buffer busy待機 (RAC): インスタンス間で転送中のキャッシュフュージョンブロックをめぐる競合
- library cache lock待機: ライブラリキャッシュのオブジェクトハンドルをめぐる競合 (解析/DDL のシリアライズ)
- ORA-00604error occurred at recursive SQL level(再帰 SQL レベルでエラーが発生)
- ORA-01438value larger than specified precision allowed for this column(列の精度を超える値)