How to restore table statistics

收集统计信息的目的是为了使执行计划准确,有时统计信息收集后执行计划发生了改变,我们期待回归之前的执行计划。ORACLE提供了相应的过程可以回退到之前的统计信息,进而执行计划也会回退。[@more@]

1、查一下某张表统计信息的历史
SQL> SELECT OWNER,
2 TABLE_NAME,
3 TO_CHAR(STATS_UPDATE_TIME, 'YYYYMMDD HH24:MI:SS')
4 FROM DBA_TAB_STATS_HISTORY
5 WHERE OWNER = 'UCR_ACT4'
6 AND TABLE_NAME = 'TI_O_CREDIT_WORK'
7 ORDER BY 3
8 /

OWNER TABLE_NAME TO_CHAR(STATS_UPDATE_TIME,'YYY
------------------------------ ------------------------------ ------------------------------
UCR_ACT4 TI_O_CREDIT_WORK 20130305 15:36:25
UCR_ACT4 TI_O_CREDIT_WORK 20130306 10:31:01

2 rows selected

SQL>

2、执行回退
SQL> EXEC DBMS_STATS.RESTORE_TABLE_STATS (OWNNAME=>'UCR_ACT4', TABNAME=>'TI_O_CREDIT_WORK', AS_OF_TIMESTAMP=>TO_DATE('20130305 15:36:25', 'YYYYMMDD HH24:MI:SS'));

PL/SQL procedure successfully completed

SQL>

3、查一下
SQL> SELECT OWNER, TABLE_NAME, LAST_ANALYZED
2 FROM DBA_TAB_STATISTICS
3 WHERE OWNER = 'UCR_ACT4'
4 AND TABLE_NAME = 'TI_OH_CREDIT_WORK'
5 /

OWNER TABLE_NAME LAST_ANALYZED
------------------------------ ------------------------------ -------------
UCR_ACT4 TI_OH_CREDIT_WORK 2013-3-5 9:41

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

转载于:http://blog.itpub.net/717880/viewspace-1060264/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值