db file scattered read: Ожидание: многоблочное физическое чтение, обычно полное сканирование таблицы или index fast full scan
OracleЧто это значит?
Сессия ждёт чтения нескольких блоков (multiblock) с диска. Обычно происходит при полном сканировании таблицы или index fast full scan.
Почему возникает?
Полные сканирования таблиц из-за отсутствия подходящего индекса, неверный план из-за устаревшей статистики, сканирование очень больших таблиц или выбранный путь доступа, откатывающийся к сканированию таблицы.
Как исправить
Определите SQL-операторы, выполняющие полные сканирования, и добавьте необходимые индексы либо обеспечьте использование существующего индекса. Обновите статистику: DBMS_STATS.GATHER_TABLE_STATS. Если крупное сканирование действительно необходимо, рассмотрите parallel query или секционирование. Проверьте DB_FILE_MULTIBLOCK_READ_COUNT и пропускную способность системы хранения.
Ещё по этой СУБД
- enq: TX - row lock contentionОжидание: сессия заблокирована блокировкой уровня строки, удерживаемой другой транзакцией
- log file syncОжидание: сессия ждёт, пока LGWR сбросит redo на диск при commit
- db file sequential readОжидание: одноблочное физическое чтение, обычно поиск по индексу или таблице
- buffer busy waitsОжидание: конкуренция за буфер, который уже читается или изменяется другой сессией
- gc buffer busyОжидание (RAC): конкуренция за блок cache fusion, передаваемый между экземплярами
- library cache lockОжидание: конкуренция за дескриптор объекта library cache (сериализация parse/DDL)
- ORA-00604Ошибка на уровне рекурсивного SQL