ITPub博客

首页 > 数据库 > Oracle > 用DBMS_STATS导入导出oracle统计信息

用DBMS_STATS导入导出oracle统计信息

原创 Oracle 作者:wyq_0712 时间:2014-05-26 16:34:59 0 删除 编辑
搜集表的信息:
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博客 ” ,链接:https://blog.itpub.net/29677883/viewspace-1170246/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 10046/10053事件
下一篇: segment advisor
请登录后发表评论 登录
全部评论

注册时间:2014-05-26

  • 博文量
    27
  • 访问量
    35687