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