buffer busy waits: Ожидание: конкуренция за буфер, который уже читается или изменяется другой сессией
OracleЧто это значит?
Сессия ждёт доступа к блоку буфера, который другая сессия одновременно читает или изменяет. Это конкуренция за блок в памяти.
Почему возникает?
Концентрация на горячих блоках, конкуренция на правом краю индексов с монотонно возрастающими ключами, недостаточное число freelists/сегменты без ASSM или интенсивный параллельный DML над одним и тем же блоком.
Как исправить
Определите затронутый сегмент и класс блоков (v$session, v$segment_statistics, ASH). Для горячих блоков индекса рассмотрите reverse key или hash-секционированный индекс. Используйте ASSM (Automatic Segment Space Management). При высокой параллельности увеличьте INITRANS/PCTFREE. Распределите паттерн доступа приложения.
Ещё по этой СУБД
- log file syncОжидание: сессия ждёт, пока LGWR сбросит redo на диск при commit
- db file sequential readОжидание: одноблочное физическое чтение, обычно поиск по индексу или таблице
- db file scattered readОжидание: многоблочное физическое чтение, обычно полное сканирование таблицы или index fast full scan
- gc buffer busyОжидание (RAC): конкуренция за блок cache fusion, передаваемый между экземплярами
- library cache lockОжидание: конкуренция за дескриптор объекта library cache (сериализация parse/DDL)
- ORA-00604Ошибка на уровне рекурсивного SQL
- ORA-01438Значение превышает точность, допустимую для этого столбца