环境:阿里云ECS Oracle 11.2.0.1 ADG
最近数据库晚上在0点到2点之间的报表任务job运行时间明显上升,如下是截取7天快照DB TIME所看到的情况:
虽然并没有影响到日终的进行,但是由于上次造成alert出现snapshot too old的事件以后,还是觉得需要看一下为好,索性就找了当天的0点到1点的awr报告看了一眼:
我同时查看了之前几天的,都如上图所示,鹤立鸡群,很明显,2c7ut81kqjf4k 这个sql_id语句执行了300多秒,执行一次,一开始我以为查的数据比较多,加上SQL语句有些问题,会很慢,然后就将对应的sql_id的awr报告下载:
执行300多秒,愣是没有查出什么数据来。这里我就开始怀疑,SQL查询数据可能数量极少,但是时间很久。然后就手动执行了这条SQL语句:
原始SQL语句如下:
select distinct a.id, a.busistate, a.processinstanceid
from ACCEPAPPLYINFO a, VBPMEXTTASK c, VBPMPROCESSINFO d
where c.ACTIVATIONTIME =
(select max(t.activationtime) activationtime
from VBPMEXTTASK t
where t.PROCESSINSTANCEID = d.id
group by t.PROCESSINSTANCEID)
and a.applysubno = d.BUSINESSKEY
and d.PROCESSINSTANCEID >= c.PROCESSINSTANCEID
and a.busistate in ('09', '17')
and a.DATASOURCE not in ('2', '4')
and (select businessdate from smsysdate) - trunc(c.ACTIVATIONTIME) >=
(select decode(durationunit,
'01',