从10g开始统计表的恢复介绍_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3517 | 回复: 0   主题: 从10g开始统计表的恢复介绍        下一篇 
jun.zhang
注册用户
等级:上士
经验:278
发帖:76
精华:0
注册:2011-12-27
状态:离线
发送短消息息给jun.zhang 加好友    发送短消息息给jun.zhang 发消息
发表于: IP:您无权察看 2012-1-4 8:31:34 | [全部帖] [楼主帖] 楼主

10g开始统计表的恢复介绍

目的:从oracle10g开始,当统计信息聚合到一个表中的时,老的数据会继续保留,这样会影响查询效率,所以我们应该将陈旧的数据备份。

Oracle保留这些陈旧数据多长时间?默认的是31天,但是可以用一下命令修改:

execute DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (xx) xx是要保留的时间。

我们如何知道统计信息还有多少天可用?

select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual;
(返回已保留的时间)
select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;
(返回那些历史数据可以恢复的时间)


我们如何找到一个表的历史统计?

select TABLE_NAME, STATS_UPDATE_TIME from dba_tab_stats_history;
(返回一个表在此收集的次数)


我们如何恢复统计?

决定什么时间该做什么统计:

execute DBMS_STATS.RESTORE_TABLE_STATS ('owner','table',date)
execute DBMS_STATS.RESTORE_DATABASE_STATS(date)
execute DBMS_STATS.RESTORE_DICTIONARY_STATS(date)
execute DBMS_STATS.RESTORE_FIXED_OBJECTS_STATS(date)
execute DBMS_STATS.RESTORE_SCHEMA_STATS('owner',date)
execute DBMS_STATS.RESTORE_SYSTEM_STATS(date)
ie
execute dbms_stats.restore_table_stats ('SCOTT','EMP','25-JUL-07 12.01.20.766591 PM +02:00');




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论