oracle 统计信息的恢复和备份,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了李沧免费建站欢迎大家使用!
oracle 11g 增加了系统信息的备份和恢复功能,分别是在系统级别,用户级别,表级别!当我们对oracle 系统对象进行统计信息收集时,为了防止新的统计信息之后的执行计划不如之前的,我们可以利用
dbms_stats.export_(database/schema/table)_stats 导出统计信息到创建的表中
dbms_stats.import_(database/schema/table)_stats 导入统计信息到系统中
来进行恢复统计信息!
对统计信息的备份和恢复包括如下等级
1)数据库的统计信息备份恢复(只能是sys用户下)
exec dbms_stats.create_stat_table('sys','stat_sys');
exec dbms_stats.export_database_stats('stat_sys');
exec dbms_stats.import_database_stats('stat_sys');
2)方案的统计信息备份恢复(只能在方案拥有者的用户下,yang为用户名)
exec dbms_stats.create_stat_table('yang','stat_2');
exec dbms_stats.export_schema_stats('yang','stat_2');
exec dbms_stats.import_schema_stats('yang','stat_2');
3)表的统计信息备份恢复(只能在表拥有者的用户下)
exec dbms_stats.create_stat_table('yang','stat_3');
exec dbms_stats.export_table_stats('yang','T1',null,'stat_3');
exec dbms_stats.import_table_stats('yang','T1',null,'stat_3');
下面针对用户级别做一个测试!
1 创建统计信息备份存放的表
yang@yangdb> exec dbms_stats.create_stat_table('yang','stat_4');
PL/SQL procedure successfully completed.
2 对用户yang 进行统计,并将统计信息导出到表里面!
yang@yangdb> begin
2 dbms_stats.gather_schema_stats(
3 ownname => 'yang',
4 estimate_percent => 100,
5 method_opt => 'for all columns size auto',
6 degree => 2);
7 end;
8 /
PL/SQL procedure successfully completed.
yang@yangdb> select table_name,last_analyzed from user_tables where table_name='T2';
TABLE_NAME LAST_ANALYZED
------------------------------ ------------------
T2 27-FEB-12
yang@yangdb> exec dbms_stats.export_schema_stats('yang','stat_4');
PL/SQL procedure successfully completed.
3 删除之前的统计信息并查询验证
yang@yangdb> exec dbms_stats.delete_schema_stats('yang');
PL/SQL procedure successfully completed.
yang@yangdb> select table_name,last_analyzed from user_tables where table_name='T2';
TABLE_NAME LAST_ANALYZED
------------------------------ ------------------
T2
4 将之前备份的统计信息从新导入
yang@yangdb> exec dbms_stats.import_schema_stats('yang','stat_4');
PL/SQL procedure successfully completed.
查询yang 用户下的t2表的统计分析时间!
yang@yangdb> select table_name,last_analyzed from user_tables where table_name='T2';
TABLE_NAME LAST_ANALYZED
------------------------------ ------------------
T2 27-FEB-12
关于oracle 统计信息的恢复和备份问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。