> Oracle tracks the CPU usage of its own sessions and presents it in
> gv$sesstat. It may not be accurate, but the inaccurate data of one session
> is somewhat accurately relative to that of others. So a serious offender
> should stand out. Gv$sesstat joins to gv$session by SID and INST_ID for
> the session info and to gv$statname by STATISTIC# and INST_ID to restrict by
> statistic. You can start with 'CPU used by this session'.
Just wanted to point out that
(a) "CPU used by this session" does not get updated until the call
ends, so for a long running single SQL statement, it would be a better
idea to look for large values of 'session logical reads'.
(b) Jonathan actually inspired this long ago, but I wrote a little
package that snapshots the V$SESSTAT/V$SESSION_EVENT when it starts,
waits for a specific number of seconds, snapshots this again and then
compares and prints the difference, so this is like a STATSPACK
snapshot for a session. You can find this on last years's Oracle Open
World site. Combine this with a query against V$SESSION for all
sessions that have ACTIVE in the STATUS column and you may have
another way of getting the most active sessions... I believe Tanel has
a similar utility.
--
John Kanagaraj <><
DB Soft Inc
Phone: 408-970-7002 (W)
** The opinions and facts contained in this message are entirely mine
and do not reflect those of my employer or customers **
--
http://www.freelists.org/webpage/oracle-l