ITPub博客

首页 > 数据库 > Oracle > 【ASK_ORACLE】Oracle如何恢复旧的统计信息

【ASK_ORACLE】Oracle如何恢复旧的统计信息

原创 Oracle 作者:Attack_on_Jager 时间:2022-12-21 16:56:17 0 删除 编辑

前言

有时候统计信息的改变不一定会提升SQL执行效率,相反可能会大幅降低执行效率。如果我们不想再次收集新的统计信息,Oracle可以恢复到某一时刻的旧统计信息,下面我们来看看如何恢复吧!

一些关于统计信息的SQL语句参考:

1.【TUNE_ORACLE】检查统计信息是否过期SQL参考: http://blog.itpub.net/69992972/viewspace-2785127/

2.【TUNE_ORACLE】定制化收集统计信息SQL参考: http://blog.itpub.net/69992972/viewspace-2784605/

3.【TUNE_ORACLE】查看表,列和索引的统计信息SQL参考: http://blog.itpub.net/69992972/viewspace-2784114/


实验环境

搭建平台:VMware Workstation

OS:OL 6.10

DB:Oracle 11.2.0.4


恢复方法

1. 设置统计信息保留时间

和AWR、备份一样,统计信息也有自己的保留时间,我们可以根据实际需要来设置(默认31天):

exec DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (天数);

比如我们保留60天:

exec DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (60);

 

我们来查看下当前的保留天数,和最早能恢复到的时间:

SQL> select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual;

GET_STATS_HISTORY_RETENTION

---------------------------------------------------

60              ##已经修改成保留60天了

 

SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;

GET_STATS_HISTORY_AVAILABILITY

------------------------------------------------------------------------------

19-NOV-22 04.52.41.089721000 PM +8:00      ##这里由于之前是31天保留时间,所以就算更新到60天,也不会找到比这个时间更老的数据了,因为已经覆盖了。

 

2. 恢复统计信息

有几种恢复统计信息的方式:

(1)恢复表的统计信息 (最常用!)

SQL> exec DBMS_STATS.RESTORE_ TABLE_STATS ('owner','table',date)

举例:

SQL> exec dbms_stats.restore_table_stats ('TEST','TBS','19-NOV-22 04.52.41.089721000 PM +8:00');

 

(2)恢复用户的统计信息(较常用)

SQL> exec DBMS_STATS.RESTORE_ SCHEMA_STATS('owner',date)

 

(3)恢复数据库的统计信息

SQL> exec DBMS_STATS.RESTORE_ DATABASE_STATS(date)

 

(4)恢复数据字典的统计信息

SQL> exec DBMS_STATS.RESTORE_ DICTIONARY_STATS(date)


(5)恢复基表(X$)的统计信息

SQL> exec DBMS_STATS.RESTORE_ FIXED_OBJECTS_STATS(date)

 

(6)恢复system的统计信息

SQL> exec DBMS_STATS.RESTORE_ SYSTEM_STATS(date)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992972/viewspace-2928936/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    142
  • 访问量
    482775