Skip to Main Content
  • Questions
  • Why sum(%CPU, %IO) > 100% in AWR Report ("SQL ordered by Elapsed Time")

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Yan.

Asked: November 06, 2012 - 8:04 pm UTC

Last updated: July 09, 2025 - 6:56 am UTC

Version: 11.2.0

Viewed 1000+ times

You Asked

Hi:

(DB version 11.2.0.3, running on Linux 64-bit)

In AWR report "SQL ordered by Elapsed Time",
- for many top long-running SQLs, quite often I see sum(%CPU+%IO) > 100%.
- for SQLs further down (i.e. not long-running ones), quite often I see sum(%CPU+%IO) significantly less than 100%

Is there a reason why ? I think I need better understanding on how these stats are collected and outstanding. Any reference to Oracle Doc or Whitepaper will be great since I tried searching in Oracle doc for an answer with no luck.

Thanks a lot

and Tom said...

you should give examples to talk to.


Are you talking way over 100%? It will be sometimes over 100% because we are measuring digital time using analog capabilities (our clocks run at 1/1000th or 1/1000000th of a second - there are errors in time when you add up lots of small events - this is a quantization error http://en.wikipedia.org/wiki/Quantization_error )

It will be normal to be a little bit over 100% since we are adding up lots of small observations and each observation could be off a tiny bit.

If you see it significantly less than 100% that just means we spent the other percentage of time waiting for something. The total service time = cpu_time+io_wait_time+all_non_io_wait_time. So, if cpu+io = 50% that means that 50% of the time was spent waiting for something else (a lock, a latch, a buffer busy wait, etc etc etc)


Rating

  (2 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

A reader, July 07, 2025 - 6:33 am UTC

Hi, I'd like to confirm something regarding this issue.
In my customer's AWR report, the sum of %IO and %CPU for this SQL exceeds 100% — it's 107.62%, which is 7.62% over.
Is this within the acceptable margin of the "quantization error" you mentioned?
The database version is 12.1.0.2.0.
Could you give me some advice on this? Thank you.

SQL ordered by Reads
Physical Reads Executions Reads per Exec %Total Elapsed Time (s) %CPU %IO SQL Id SQL Module SQL Text
7,837,020 8 979,627.50 18.39 20.35 46.56 61.06 1st3ab874msau JDBC Thin Client SELECT ...
Connor McDonald
July 09, 2025 - 6:56 am UTC

If you could format that data so its fixed width (thats why we have "code" button right there) that would be useful

A reader, July 09, 2025 - 9:17 am UTC

Hi, I'd like to confirm something regarding this issue.
In my customer's AWR report, the sum of %IO and %CPU for this SQL exceeds 100% — it's 107.62%, which is 7.62% over.
Is this within the acceptable margin of the "quantization error" you mentioned?
The database version is 12.1.0.2.0.
Could you give me some advice on this? Thank you.

SQL ordered by Reads

Physical Reads   Executions   Reads per Exec   %Total   Elapsed Time (s)   %CPU   %IO    SQL Id   SQL Module         SQL Text
7,837,020        8            979,627.50       18.39    20.35              46.56  61.06  1st3ab874msau  JDBC Thin Client  SELECT ...

More to Explore

Performance

Get all the information about database performance in the Database Performance guide.