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 中打开 →

同一数据库的其他条目