当前位置:操作系统 > Unix/Linux >>

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

[每日一题] 11gOCP 1z0-052 :2013-09-22 STATISTICS
 
 
正确答案: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;
 
Session altered.
修改参数为true之后,Oracle CBO在生成执行计划的时候就会使用Pending的统计量。
 
D、减少AutomaticWorkload库(AWR)保留时间2天,默认AWR保留是7天,但AWR中这个统计信息与SQL执行生成所需要的统计信息不是一回事情。
EXECUTEDBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
  interval =>  60,
  retention =>  20160);
retention
The new retention time (in minutes). The specified value must be in the range of MIN_RETENTION (1 day) to MAX_RETENTION (100 years).
If ZERO is specified, snapshots will be retained forever. A large system-defined value will be used as the retention setting.
If NULL is specified, the old value for retention is preserved.
 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,