日期:2014-05-16  浏览次数:20495 次

[每日一题] 11gOCP 1z0-052 :2013-09-22 STATISTICS.................................................B65

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11908921



正确答案:A

 

A.   正确。可以还原到之前的statistics。

可以按需要根据时间点恢复统计信息,还原到2天前的统计信息

gyj@OCM >execute dbms_stats.restore_table_stats ('GYJ','T1',sysdate –2);
 
PL/SQL procedure successfully completed

 

B、不正确,保鲜期修改为2天,起不到什么作用,达不到还原统计信息的要求。

SM/OPTSTAT:用于存储老版本的优化统计信息,在oracle10g中,在我们手动或自动更新统计信息使oracle选择了错误的执行计划。oracle10g是可以恢复旧版本的统计信息,这个统计信息默认保存31天.

 

gyj@OCM> SELECT dbms_stats.get_stats_history_retention FROM dual;

 

GET_STATS_HISTORY_RETENTION

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

                         31

修改SM/OPTSTAT的统计信息的保存时间为10

gyj@OCM>  execdbms_stats.alter_stats_history_retention(2);

 

PL/SQL procedure successfully completed.

 

gyj@OCM>  SELECTdbms_stats.get_stats_history_retention FROM dual;

 

GET_STATS_HISTORY_RETENTION

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

                          2


C、OPTIMIZER_USE_PENDING_STATISTICS 是挂起统计信息,不发布统信息

在Oracle中,存在一个参数optimizer_use_pending_statistics,用来控制当前是否使用pending的统计量来生成执行计划。作为运维DBA,可以通过这个参数暂时性的启用pending统计量,观察一下性能状况。再决定是否启用publish这些统计量。

默认情况下,该参数取值为false。我们可以在session级别设置下该参数为true。

在11g中提出的pendingstatistic的方法,可以在生产运维和稳定优化执行计划方面,给我们提供帮助。

gyj@OCM> show parameterSTATISTICS

 

NAME                                 TYPE        VALUE

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

optimizer_use_pending_statistics     boolean    FALSE

statistics_level                     string      TYPICAL

timed_os_statistics                  integer     0

timed_statistics                     boolean     TRUE

 

gyj@OCM> alter session setoptimizer_use_pending_statistics=true;