DBAtlas · Атлас эксплуатации баз данных

ORA-38029: object statistics are locked

Oracle

Что это значит?

Сбор/удаление статистики отклонены, так как статистика оптимизатора для таблицы (или схемы) заблокирована. Заблокированная статистика защищена от пересчёта с помощью DBMS_STATS.

Почему возникает?

Ранее был вызван DBMS_STATS.LOCK_TABLE_STATS или LOCK_SCHEMA_STATS (например, чтобы зафиксировать статистику), либо импорт Data Pump (особенно с CONTENT=METADATA_ONLY) непреднамеренно оставил статистику заблокированной. Запуск GATHER_TABLE_STATS при заблокированной статистике вызывает эту ошибку.

Как исправить

Разблокируйте статистику: EXEC DBMS_STATS.UNLOCK_TABLE_STATS('APP_SCHEMA','MY_TABLE'); или на уровне схемы DBMS_STATS.UNLOCK_SCHEMA_STATS('APP_SCHEMA'); Если снимать блокировку не нужно, но собрать статистику всё же требуется, используйте FORCE=>TRUE: EXEC DBMS_STATS.GATHER_TABLE_STATS('APP_SCHEMA','MY_TABLE', force=>TRUE); Чтобы посмотреть состояние блокировки: SELECT table_name, stattype_locked FROM dba_tab_statistics WHERE stattype_locked IS NOT NULL;

Открыть в DBAtlas →

Ещё по этой СУБД