db file scattered read: 待機: マルチブロックの物理読み取り。通常は全表スキャンまたはインデックス高速全スキャン
Oracle意味
セッションがディスクから複数ブロック (マルチブロック) が読み取られるのを待っている。通常は全表スキャンまたはインデックス高速全スキャン中に発生する。
原因
適切なインデックスがないことによる全表スキャン、古い統計による誤った実行計画、非常に大きなテーブルのスキャン、または選択されたアクセスパスがテーブルスキャンにフォールバックしている。
対処方法
全スキャンを行っている SQL 文を特定し、必要なインデックスを追加するか既存のインデックスが使われるようにする。統計を更新する: DBMS_STATS.GATHER_TABLE_STATS。大規模なスキャンが本当に必要ならパラレルクエリまたはパーティション化を検討する。DB_FILE_MULTIBLOCK_READ_COUNT とストレージのスループットを見直す。
同じデータベースの他の項目
- enq: TX - row lock contention待機: 別トランザクションが保持する行レベルロックでセッションがブロックされている
- log file sync待機: コミット時に LGWR が redo をディスクにフラッシュするのをセッションが待っている
- db file sequential read待機: 単一ブロックの物理読み取り。通常はインデックスまたはテーブルの参照
- buffer busy waits待機: 別セッションが読み取り中または変更中のバッファをめぐる競合
- gc buffer busy待機 (RAC): インスタンス間で転送中のキャッシュフュージョンブロックをめぐる競合
- library cache lock待機: ライブラリキャッシュのオブジェクトハンドルをめぐる競合 (解析/DDL のシリアライズ)
- ORA-00604error occurred at recursive SQL level(再帰 SQL レベルでエラーが発生)