Oracle v8174
在启用了statspack的自动作业后,发现Statspack报告中出现了下面的信息:
Instance Activity Stats for DB: INSIDE Instance: inside Snaps: 17 -19
Statistic Total per Second per Trans
--------------------------------- ---------------- ------------ ------------
CPU used by this session 524,129,846 80,660.2 9,359,461.5
刚开始一看,确实吓了一跳,这么高的CPU占用还得了,但时,从任务管理器中看到的CPU占用却很低.于是决定进一步查一下,到底是什么原因.
先看占用了CPU情况:
select ss.sid, se.command, ss.value CPU, se.username, se.program
from v$sesstat ss, v$session se
where ss.statistic# in
(select statistic#
from v$statname
where name = 'CPU used by this session') and se.sid = ss.sid and
se.sid > 6
order by cpu desc
发现7,8,9,10四个sid的cpu值特别高,这几个是系统进程,具体是什么呢?进一步查询:
Select a.Sid, b.Spid, b.Program, c.Description
From V$session a, V$process b, V$bgprocess c
Where a.Paddr = b.Addr And b.Addr = c.Paddr
发现这四个进程都是job queue processes
再查系统的自动作业,发现只有两个:
select * from dba_jobs
这就奇怪了,开始怀疑是Oracle的BUG,于是上metalink一查,果然是这样:
Bug No. 3472564
发生在8174上,但是到10.2才解决.
还好,这个系统上的自动作业不是必须的,删除后重启系统,现象消失.
如果是实际用户遇到这个问题,可以不去管它,只是v$sesstat性能统计数据出错罢了,并不是实际的CPU占用过高