- 论坛徽章:
- 0
|
先调整AWR自动采样的时间间隔,以便在较短的时间内看到测试效果。否则在默认的1小时采样一次的环境下,测试周期过长。
1.获取AWR默认采样间隔时间 参考文章《【AWR】调整AWR数据采样时间间隔及历史快照保留时间》(http://space.itpub.net/519536/viewspace-668410)。 sys@ora10g> col SNAP_INTERVAL for a20 sys@ora10g> col RETENTION for a20 sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- -------------------- -------------------- ---------- 4067278754 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT
AWR默认的采样时间间隔是1小时。
2.调整自动采样时间间隔 将自动采样的时间间隔设置为最小值(最小值是10分钟自动采样一次)。 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( interval => 10, retention => 2*24*60); END; /
3.确认自动采样时间间隔调整成功 sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- -------------------- -------------------- ---------- 4068874419 +00000 00:10:00.0 +00002 00:00:00.0 DEFAULT
未来将会在10分钟的整数倍处触发AWR的自动采样。
4.手工完成采样的命令 sys@ora10g> exec dbms_workload_repository.create_snapshot;
PL/SQL procedure successfully completed.
5.测试场景设计 1)十分钟的采样间隔,5分钟“之前”手工采样一次,观察下一个自动采样是否发生;
2)十分钟的采样间隔,5分钟“之后”手工采样一次,观察下一个自动采样是否发生;
6.测试结果及结论 sys@ora10g> col BEGIN_INTERVAL_TIME for a30 sys@ora10g> col END_INTERVAL_TIME for a30 sys@ora10g> select SNAP_ID,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME from dba_hist_snapshot order by 3;
SNAP_ID BEGIN_INTERVAL_TIME END_INTERVAL_TIME ------- ------------------------- ------------------------- ……省略其他输出数据…… 31 01-MAY-11 22.30.20.211 PM 01-MAY-11 22.31.32.154 PM --手动采样 32 01-MAY-11 22.31.32.154 PM 01-MAY-11 22.40.20.361 PM --自动采样发生 33 01-MAY-11 22.40.20.361 PM 01-MAY-11 22.48.28.451 PM --手动采样 34 01-MAY-11 22.48.28.451 PM 01-MAY-11 23.00.20.617 PM --跳过“22.50” 35 01-MAY-11 23.00.20.617 PM 01-MAY-11 23.01.55.948 PM --自动采样发生
注意:在“22.50”分的自动采样没有如期完成。这便是这个有趣的现象。 测试推测结论:在自动采样周期的前半周期如果出现手动采样将不会影响自动采样的发生;但是,如果是在自动采样周期的后半周期内完成的手动采样,紧跟其后的自动采样将不会发生。
7.小结 建议对上述现象进行多次测试,以便保证结论的可信性。 由于AWR默认情况下的自动采样周期是1小时,因此如果前半小时出现手动采样对整点的自动采样没有影响;在后半小时出现手动采样,下一次整点的自动采样将被取消。
Good luck |
|