Oracle 如何将 某个环境中 表的统计信息迁移到其他环境中?
参考语句如下:
--1.创建一张表存放导出的统计信息
exec dbms_sats.create_stats.create_stat_table(ownname=>'SCOTT',stattab=>'stat_table',tblspace=>'USERS');
--2.导入emp表的统计信息,默认导入索引和列
exec dbms_stats.export_table_stats(ownname=>'SCOTT',tabname='EMP',stattab='stat_table');
--3.将表stat_table导入到另一个数据库中
--4.导入统计信息
exec dbms_stats.import_table_stats(ownname=>'SCOTT',abname=>'EMP',stattab=>'stat_table',no_invalidate=>true);
--no_invalidate 默认是false,true 确保所有从属游标不会失效
本例展示了表的迁移过程,DBMS_STATS包还包括列级、索引级、架构级和数据库级导出和导入统计信息的过程。此外,还有导出和导入字典统计信息、固定对象统计信息和系统统计信息的过程。
迁移数据库参考
--建表
exec dbms_stats.create_stat_table( ownname => 'system',stattab => 'stat_table' ) ;
--导入
exec dbms_stats.export_database_stats(stattab=>'stat_table',statown=>'SYSTEM');
--导入
exec dbms_stats.import_databsae_stats(stattab=>'stat_table',statown=>'SYSTEM');
迁移用户参考
--导入
exec dbms_stats.export_schema_stats(ownname=>'SCOTT',stattab=>'stat_table',statown=>'SYSTEM');
--导入
exec dbms_stats.import_schema_stats(ownname=>'SCOTT',stattab=>'stat_table',statown=>'SYSTEM');