【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
相关文章
|
1月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
13 1
|
6月前
|
Oracle 关系型数据库 数据库
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
|
SQL Oracle 关系型数据库
Oracle 统计某个字段下不同值的个数
Oracle 统计某个字段下不同值的个数
|
1月前
|
JavaScript Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
23 0
|
3月前
|
SQL 存储 Oracle
oracle如何定期备份数据库sql文件
【1月更文挑战第7天】oracle如何定期备份数据库sql文件
58 8
|
8月前
|
Oracle 关系型数据库 数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
|
10月前
|
SQL 存储 Oracle
是否应该收集Oracle的系统统计信息?(译文)
您应该收集Oracle数据库的系统统计信息吗?如果您部署过Oracle数据库,那么您会对这个问题有自己的观点,但Oracle的建议什么呢?
|
11月前
|
存储 SQL 监控
Oracle BCT(Block Change Tracking)与增量备份---发表在数据和云
BCT(Block Change Tracking)是Oracle从10g开始有的特性。BCT的原理是记录数据文件里每个数据块的变化,并把这些变化信息保存在BCT的跟踪文件中。
303 0
|
11月前
|
Oracle 关系型数据库 内存技术
|
11月前
|
Oracle 关系型数据库 Linux
Oracle自动备份脚本(Linux)
Oracle自动备份脚本(Linux)
97 0

推荐镜像

更多