Re: Awr waits over 100%

  • From: Marcus Mönnig <mm@xxxxxxxxxxxxxxxx>
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 29 Sep 2011 08:12:19 +0200

Hi Kenneth,

2011/9/29 Kenneth Naim <kennethnaim@xxxxxxxxx>:
> But shouldn't the waits + cpu time be divided by the db time so it can't 
> never exceed 100%
> unless it is double counting like Marcus said. If it were dividing by the
> elapsed time then it would routinely go over 100% but that isn't the case in
> hundreds of awr's I've looked at over the years. It begs the question isn't
> the double counting a bug?

the "DB time" value used as the divisor for calculating "% Total Call
Time" value comes from Oracle's Time Model Statistics and is defined
as:

"Database time is calculated by aggregating the CPU time and wait time
of all user sessions not waiting for idle wait events (nonidle user
sessions)."

So, it's not the sum for all sessions, but only for user sessions. All
cpu and wait times for background sessions are in the numerator, but
not in the denominator. In your case, the times for "log file parallel
write" and possible parts of other wait events/CPU time refer to the
LGWR background process.

You can look at the "Background Wait Events" section in the AWR report
for all background wait events and "background cpu time" value in the
"Time Model System Stats" to get the CPU times for background
processes.

Cheers,
Marcus
--
//www.freelists.org/webpage/oracle-l


Other related posts: