搜集表的信息:
exec dbms_stats.gather_table_stats('WYQ','T',cascade=>true);
搜集索引的统计信息:
exec dbms_stats.gather_index_stats(ownname => 'SGPMS',indname => 'PK_E_CONS_PRC_AMT');
1.创建存放统计信息表
EXECUTE DBMS_STATS.CREATE_STAT_TABLE ('WYQ', 'STATTAB','USERS');
在删除表数据的时候,直接:TRUNCTATE TABLE TABLE_NAME;
也可以直接删除表: DROP TABLE STATTAB PURGE;
在 SYSAUX 表空间上创建 STATTAB 用以存储统计信息, 所有者是 SCOTT 用户。
2.导出schema的统计信息
EXEC dbms_stats.EXPORT_SCHEMA_STATS
(ownname=>'scott',stattab=>'stattab',STATID=>'foo_20120427');
exec dbms_stats.export_schema_stats(ownname=>'wyq',stattab=>'stattab',statid=>'wyq_20131025');
这里建议手动设定一下 STATID. STATID 命名规则建议用 对象名(SCHEMA名)+ 时间(注意粒度).
导出table表的统计信息
EXEC dbms_stats.export_table_stats
(OWNNAME=>'scott',TABNAME=>'foo',STATTAB=>'stattab',STATID=>'foo_20120427');
exec dbms_stats.export_table_stats(ownname=>'wyq',tabname=>'t',stattab=>'stattab',statid=>'t_20130906');
3.用expdp导出统计信息表
expdp system/oracle DIRECTORY=expdimp DUMPFILE=scottexp20110426.dmp SCHEMAS='scott'logfile=scottexp20.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
expdp wyq/wyq DIRECTORY=WYQ DUMPFILE=wyqexp20131025.dmp SCHEMAS='wyq' logfile=wyqexp20131025.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
expdp wyq/wyq DIRECTORY=WYQ DUMPFILE=wyqexp20130906.dmp logfile=wyqexp20130906.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
4.把expdp导出的文件scottexp20110426.dmp 上传到测试服务器,方法很多比如scp
impdp wyq/wyq DIRECTORY=WYQ DUMPFILE=sgpms20131025.dmp logfile=sgpms20131015.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
5.导入schema的统计信息
恢复该表的统计信息(之前要导出当前的统计信息):
exec DBMS_STATS.IMPORT_SCHEMA_STATS(ownname=>'scott',stattab=>'stattab',STATID=>'foo_20120427');
exec DBMS_STATS.IMPORT_SCHEMA_STATS(ownname=>'wyq',stattab=>'stattab',STATID=>'t_20130906');
导入table表的统计信息
EXEC dbms_stats.import_table_stats
(OWNNAME=>'scott',TABNAME=>'foo',STATTAB=>'stattab',STATID=>'foo_20120427');
ownname可以指定新的
6.删除统计信息表
exec DBMS_STATS.DROP_STAT_TABLE('scott','stattab');
exec DBMS_STATS.DROP_STAT_TABLE('wyq','stattab');
exec dbms_stats.gather_table_stats('WYQ','T',cascade=>true);
搜集索引的统计信息:
exec dbms_stats.gather_index_stats(ownname => 'SGPMS',indname => 'PK_E_CONS_PRC_AMT');
1.创建存放统计信息表
EXECUTE DBMS_STATS.CREATE_STAT_TABLE ('WYQ', 'STATTAB','USERS');
在删除表数据的时候,直接:TRUNCTATE TABLE TABLE_NAME;
也可以直接删除表: DROP TABLE STATTAB PURGE;
在 SYSAUX 表空间上创建 STATTAB 用以存储统计信息, 所有者是 SCOTT 用户。
2.导出schema的统计信息
EXEC dbms_stats.EXPORT_SCHEMA_STATS
(ownname=>'scott',stattab=>'stattab',STATID=>'foo_20120427');
exec dbms_stats.export_schema_stats(ownname=>'wyq',stattab=>'stattab',statid=>'wyq_20131025');
这里建议手动设定一下 STATID. STATID 命名规则建议用 对象名(SCHEMA名)+ 时间(注意粒度).
导出table表的统计信息
EXEC dbms_stats.export_table_stats
(OWNNAME=>'scott',TABNAME=>'foo',STATTAB=>'stattab',STATID=>'foo_20120427');
exec dbms_stats.export_table_stats(ownname=>'wyq',tabname=>'t',stattab=>'stattab',statid=>'t_20130906');
3.用expdp导出统计信息表
expdp system/oracle DIRECTORY=expdimp DUMPFILE=scottexp20110426.dmp SCHEMAS='scott'logfile=scottexp20.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
expdp wyq/wyq DIRECTORY=WYQ DUMPFILE=wyqexp20131025.dmp SCHEMAS='wyq' logfile=wyqexp20131025.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
expdp wyq/wyq DIRECTORY=WYQ DUMPFILE=wyqexp20130906.dmp logfile=wyqexp20130906.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
4.把expdp导出的文件scottexp20110426.dmp 上传到测试服务器,方法很多比如scp
impdp wyq/wyq DIRECTORY=WYQ DUMPFILE=sgpms20131025.dmp logfile=sgpms20131015.log EXCLUDE=TABLE:\"IN \(\''stattab'\'\)\"
5.导入schema的统计信息
恢复该表的统计信息(之前要导出当前的统计信息):
exec DBMS_STATS.IMPORT_SCHEMA_STATS(ownname=>'scott',stattab=>'stattab',STATID=>'foo_20120427');
exec DBMS_STATS.IMPORT_SCHEMA_STATS(ownname=>'wyq',stattab=>'stattab',STATID=>'t_20130906');
导入table表的统计信息
EXEC dbms_stats.import_table_stats
(OWNNAME=>'scott',TABNAME=>'foo',STATTAB=>'stattab',STATID=>'foo_20120427');
ownname可以指定新的
6.删除统计信息表
exec DBMS_STATS.DROP_STAT_TABLE('scott','stattab');
exec DBMS_STATS.DROP_STAT_TABLE('wyq','stattab');
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29677883/viewspace-1170246/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29677883/viewspace-1170246/