发现一个用户下统计信息没有生成,
查询user_tab_modifications 发现变动信息也超过10%
没有警告日志
执行
exec dbms_stats.gather_schema_stats(ownname => 'test',granularity => 'ALL',cascade => true);
还是没有生成
然后执行报
begin dbms_stats.gather_table_stats(ownname => 'test',tabname => 'TCCLICOMH',granularity => 'ALL',cascade => true); end;
ORA-20005: object statistics are locked (stattype = ALL)
ORA-06512: 在 "SYS.DBMS_STATS", line 13056
ORA-06512: 在 "SYS.DBMS_STATS", line 13076
ORA-06512: 在 line 2
执行以下脚本后正常
SQL> exec dbms_stats.unlock_schema_stats(ownname => 'test');
PL/SQL procedure successfully completed
SQL>exec dbms_stats.gather_schema_stats(ownname => 'test',granularity => 'ALL',cascade => true);
PL/SQL procedure successfully completed
原因是因为使用impdp 只导入metadata_only 或(expdp的时候使用了contend=metadata_only)时 没有使用 use exclude=(table_statistics,index_statistics)
引起的
查询user_tab_modifications 发现变动信息也超过10%
没有警告日志
执行
exec dbms_stats.gather_schema_stats(ownname => 'test',granularity => 'ALL',cascade => true);
还是没有生成
然后执行报
begin dbms_stats.gather_table_stats(ownname => 'test',tabname => 'TCCLICOMH',granularity => 'ALL',cascade => true); end;
ORA-20005: object statistics are locked (stattype = ALL)
ORA-06512: 在 "SYS.DBMS_STATS", line 13056
ORA-06512: 在 "SYS.DBMS_STATS", line 13076
ORA-06512: 在 line 2
执行以下脚本后正常
SQL> exec dbms_stats.unlock_schema_stats(ownname => 'test');
PL/SQL procedure successfully completed
SQL>exec dbms_stats.gather_schema_stats(ownname => 'test',granularity => 'ALL',cascade => true);
PL/SQL procedure successfully completed
原因是因为使用impdp 只导入metadata_only 或(expdp的时候使用了contend=metadata_only)时 没有使用 use exclude=(table_statistics,index_statistics)
引起的