Global Stats
=================================================
| Elapsed | Cpu | Other | Fetch | Buffer |
| Time(s) | Time(s) | Waits(s) | Calls | Gets |
=================================================
| 34 | 34 | 0.11 | 1 | 294K |
=================================================
SQL Plan Monitoring Details (Plan Hash Value=3534073399)
======================================================================================== =====================================================
| Id | Operation | Name | Rows | Cost | Time | Start | Execs | Rows | Activity | Activity Detail |
| | | | (Estim) | | Active(s) | Active | | (Actual) | (%) | (# samples) |
======================================================================================== =====================================================
| 0 | SELECT STATEMENT | | | | 28 | +7 | 1 | 1 | | |
| 1 | SORT AGGREGATE | | 1 | | 33 | +2 | 1 | 1 | 40.00 | Cpu (14) |
| 2 | APPROXIMATE NDV AGGREGATE | | 24M | 80111 | 35 | +0 | 1 | 39M | 54.29 | Cpu (19) |
| 3 | MAT_VIEW ACCESS FULL | LV_CROPFUNDPAR | 24M | 80111 | 28 | +7 | 1 | 39M | 2.86 | Cpu (1) |
======================================================================================== =====================================================
在Global Information部分,Status显示为DONE,说明SQL语句已经执行完成了。Time Active(s)列 显示操作已经执行了多长时间。Start Active列,以秒为单位,代表SQL语句执行的开始。在这个报 告中,MAT_VIEW ACCESS FULL是ID 3是第一个被执行的(+7s Start Active)并且执行了28秒。
Start列显示该操作被执行的次数。Rows(Actual)列显示被处理的行数,Rows(Estim)列显示优化器所 评估的行数。Memory与Temp列指示每个操作所消耗的内存与临时空间的大小。
Activity(percent)与Activity Detail(sample #)是通过连接v$sql_plan_monitor与v $active_session_history视图而得到。Activity(percent)显示执行计划中每个操作所占数据库时间 的百分比。Activity Detail(sample#)显示了活动的属性(比如CPU或等待事件)。在这个报告中,ID 2消耗了的数据库时间百分比为54.29%(APPROXIMATE NDV AGGREGATE)。活动由19samples组成。最 后一列,Progress,显示了v$session_longops视图所监控到的操作信息。
启用与禁用SQL监控
SQL监控功能当statistics _level参数被设置为all或typical(缺省值)时缺省是开启的。额外, control_management_pack_access参数必须设置为diagnostic+tuning(缺省值),因为SQL监控是 Oracle数据库优化包的一个功能。SQL监控对于所有运行时间长的查询会自动启动。
有两种语句级别的hint可以用来强制或者阻止SQL语句被监控。为了强制SQL监控,使用monitor hint:
select /*+ MONITOR */ from dual;
这种hint只有当control_management_pack_access参数被设置为diagnostic+tuning时才生效。为了 阻止SQL语句被监控可以使用no_monitor hint。