Oracle database 10g版本开始引入了AWR和ASH,可以说已经大大提高了database性能诊断的效率,原来大量繁琐、枯燥的数据字典查询(诊断数据库状态)工作可以轻松通过database control界面中的AWR或ASH以友好、易读的方式进行完成。从11g版本开始,SQL monitor特性能够支持实时监控正在执行的SQL性能,进一步解放判断、分析各类原始内部视图的工作量。

SQL monitor使用前提:

  1. 老规矩了,初始化参数STATISTICS_LEVEL需要设置为All或Typical
  2. 11g版本里引入的新初始化参数CONTROL_MANAGEMENT_PACK_ACCESS需要设置为DIAGNOSTIC+TUNING,以打开诊断和调优功能

什么时候启动:

缺省情况下,

  1. SQL执行了并行操作
  2. 单个SQL语句执行时有消耗超过至少5秒的CPU或I/O时间

当然SQL monitor功能也可以有hint来强行执行或强行阻止。

在哪里查看:

  1. 底层提供两个新内部视图:V$SQL_MONITOR和V$SQL_PLAN_MONITOR。视图里可以查看SQL消耗时间、CPU时间、读写次数、I/O等待时间及各类等待时间等。这些统计数据以近实时的方式刷新,因为执行命令会每秒执行一次。
  2. Database control友好界面,在图像方式下,通过不同颜色对比,不同位置的统计数据显示,实现了过去常通过sql trace或tkprof看到的sql分析。