DBAtlas · Atlas de operações de banco de dados

ORA-38029: object statistics are locked

Oracle

O que significa?

A coleta/exclusão de estatísticas foi rejeitada porque as estatísticas do otimizador de uma tabela (ou schema) estão bloqueadas. Estatísticas bloqueadas ficam protegidas contra recálculo com DBMS_STATS.

Por que acontece?

DBMS_STATS.LOCK_TABLE_STATS ou LOCK_SCHEMA_STATS foi chamado anteriormente (por exemplo, para manter as estatísticas fixas), ou uma importação do Data Pump (especialmente CONTENT=METADATA_ONLY) deixou as estatísticas bloqueadas sem intenção. Executar GATHER_TABLE_STATS enquanto estão bloqueadas gera este erro.

Como resolver

Desbloqueie as estatísticas: EXEC DBMS_STATS.UNLOCK_TABLE_STATS('APP_SCHEMA','MY_TABLE'); ou no nível de schema DBMS_STATS.UNLOCK_SCHEMA_STATS('APP_SCHEMA'); Se não quiser remover o bloqueio mas ainda precisar coletar, use FORCE=>TRUE: EXEC DBMS_STATS.GATHER_TABLE_STATS('APP_SCHEMA','MY_TABLE', force=>TRUE); Para ver o status do bloqueio: SELECT table_name, stattype_locked FROM dba_tab_statistics WHERE stattype_locked IS NOT NULL;

Abrir no DBAtlas →

Mais entradas deste banco