DBAtlas · Atlas d'exploitation des bases de données

ORA-38029: object statistics are locked (les statistiques de l'objet sont verrouillées)

Oracle

Que signifie cette erreur ?

La collecte/suppression des statistiques a été refusée car les statistiques de l'optimiseur d'une table (ou d'un schéma) sont verrouillées. Les statistiques verrouillées sont protégées contre tout recalcul par DBMS_STATS.

Cause

DBMS_STATS.LOCK_TABLE_STATS ou LOCK_SCHEMA_STATS a été appelé auparavant (par ex. pour figer les statistiques), ou un import Data Pump (notamment CONTENT=METADATA_ONLY) a laissé les statistiques verrouillées involontairement. Exécuter GATHER_TABLE_STATS alors qu'elles sont verrouillées lève cette erreur.

Comment la corriger

Déverrouillez les statistiques : EXEC DBMS_STATS.UNLOCK_TABLE_STATS('APP_SCHEMA','MY_TABLE'); ou au niveau du schéma DBMS_STATS.UNLOCK_SCHEMA_STATS('APP_SCHEMA'); Si vous ne voulez pas lever le verrou mais souhaitez tout de même collecter, utilisez FORCE=>TRUE : EXEC DBMS_STATS.GATHER_TABLE_STATS('APP_SCHEMA','MY_TABLE', force=>TRUE); Pour voir l'état du verrou : SELECT table_name, stattype_locked FROM dba_tab_statistics WHERE stattype_locked IS NOT NULL;

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur