我正在尝试将统计信息从一个模式复制到另一个模式。我使用以下命令,但在all_tables视图上的目标模式num_rows保持不变。是否有任何视图可以检查验证统计信息移动的目标架构?
EXEC DBMS_STATS.create_stat_table('DBASCHEMA','STATS_TABLE');
EXEC DBMS_STATS.export_schema_stats('APPSCHEMA','STATS_TABLE',NULL,'DBASCHEMA');
EXEC DBMS_STATS.import_schema_stats('APPSCHEMA','STATS_TABLE',NULL,'DBASCHEMA');
EXEC DBMS_STATS.drop_stat_table('DBASCHEMA','STATS_TABLE');
谢谢。
答案 0 :(得分:1)
您正在导出并导入到同一架构中。如果要将统计信息从APPSCHEMA复制到DBASCHEMA,这将起作用:
BEGIN
DBMS_STATS.create_stat_table('DBASCHEMA','STATS_TABLE');
DBMS_STATS.export_schema_stats('APPSCHEMA','STATS_TABLE',NULL,'DBASCHEMA');
EXECUTE IMMEDIATE 'UPDATE DBASCHEMA.STATS_TABLE SET c5 = ''DBASCHEMA''';
COMMIT;
DBMS_STATS.import_schema_stats('DBASCHEMA','STATS_TABLE');
DBMS_STATS.drop_stat_table('DBASCHEMA','STATS_TABLE');
end;
/
我更改了导入以使用DBASCHEMA。正如My Oracle Support文档1430225.1所解释的那样,中间的UPDATE
是避免错误ORA-20000: no statistics are imported
所必需的。