本文共 1579 字,大约阅读时间需要 5 分钟。
$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
2. 如果用户来说, 他的concurrent request 很慢,跑了很久,都没跑出来 ,他摆 concurrent request ID 给了你, 他让你看一看, 你会看什么 ? ( 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--
4. 接着上题,又过了 20 分钟, Application Support 的人员 来说, 这个 concurrent request 中的一个 SQL ( 他给你 SQL ID)比以前慢多了, 你怎么确认 这个 SQL 的 性能 比以前慢多了, 如果确实 慢多了, 你会怎么办 ?
可以通过比较该SQL的历史执行时间来确定是否比以前慢了.
select * from DBA_SQL_PLAN_BASELINES;
select * from dba_hist_sql_plan;如果确实慢了,可以比较下执行计划是否改变,检查历史数据是否大了许多,统计信息是否更新等.
--EOF--
转载地址:http://gwtai.baihongyu.com/