gc buffer busy: Ожидание (RAC): конкуренция за блок cache fusion, передаваемый между экземплярами
OracleЧто это значит?
В среде RAC сессия ждёт доступа к глобальному блоку, который передаётся через cache fusion в другой экземпляр или из него либо удерживается этим экземпляром занятым.
Почему возникает?
Одни и те же горячие блоки, разделяемые узлами RAC (межэкземплярный горячий блок), задержка/узкое место interconnect, межузловая конкуренция на индексах с последовательными ключами или несбалансированное распределение нагрузки.
Как исправить
Найдите затронутые сегменты через v$segment_statistics и представления GV$. Проверьте исправность и задержку interconnect (выделенная быстрая сеть). Для горячих индексов используйте reverse key или hash-секционирование. Сократите межузловую конкуренцию за одни и те же блоки, разделив нагрузку между узлами по службам.
Ещё по этой СУБД
- db file sequential readОжидание: одноблочное физическое чтение, обычно поиск по индексу или таблице
- db file scattered readОжидание: многоблочное физическое чтение, обычно полное сканирование таблицы или index fast full scan
- buffer busy waitsОжидание: конкуренция за буфер, который уже читается или изменяется другой сессией
- library cache lockОжидание: конкуренция за дескриптор объекта library cache (сериализация parse/DDL)
- ORA-00604Ошибка на уровне рекурсивного SQL
- ORA-01438Значение превышает точность, допустимую для этого столбца
- ORA-01400Невозможно вставить NULL в (столбец)