<<Oracle Applications DBA 基础(第二期)>>Week 11 exercise

来源:互联网 发布:巴南银针 淘宝 编辑:程序博客网 时间:2024/05/19 19:34
1. JVM garbage collection 的情况能在哪里看到 ?

$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--

0 0