$LOG_HOME/ora/10.1.3/opmn/default_group~oacore~default_group~1.log
$LOG_HOME/ora/10.1.3/opmn/default_group~forms~default_group~1.log
$LOG_HOME/ora/10.1.3/opmn/default_group~oafm~default_group~1.log
--EOF
( hint: please review the PPT in week 7 and week 11)
根据request id去查查session, 看看具体在等待什么或者是否有其他争用:
select fcr.request_id, vs.SID, vs.SERIAL#, vs.EVENT
from fnd_concurrent_requests fcr,
fnd_concurrent_processes fcp,
v$process vp,
v$session vs
where fcr.controlling_manager = fcp.concurrent_process_id
and fcp.oracle_process_id = vp.PID
and vp.ADDR = vs.PADDR
and fcr.phase_code='R';
--EOF--
3. 接着上题, 过了 5 分钟, 用户的经理又来说 , 以前的 这个request 跑 20分钟 就出来了, 现在 跑了 4 个小时 还没完。
你听了 ,你怎么确定他说的对不对 ? 如果是对的, 会怎么办 ?
( hint: please review the PPT in week5 ,week 7 and week 11)
可用如下SQL查看某个program的历史request运行时间:
select request_id,
program,
phase,
status,
(actual_completion_date - actual_start_date)*24*60 mins
from fnd_amp_requests_v
where program = 'Active Users' order by request_id desc;
也可以通过System Administrator -> OAM > Site Map > Monitoring > Concurrent Requests来查看以往request的运行时间.
如果同一个program的request确实由20分钟变成4小时, 可以检查下两个request的参数是否一样, 当前DB或者OS是否有其他负载.
--EOF--
比以前慢多了, 你怎么确认 这个 SQL 的 性能 比以前慢多了, 如果确实 慢多了, 你会怎么办 ?
可以通过比较该SQL的历史执行时间来确定是否比以前慢了.
select * from DBA_SQL_PLAN_BASELINES;
select * from dba_hist_sql_plan;
如果确实慢了,可以比较下执行计划是否改变,检查历史数据是否大了许多,统计信息是否更新等.
--EOF--