Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Method R and CPU Time

Re: Method R and CPU Time

From: Jonathan Lewis <>
Date: Sat, 3 Jul 2004 11:03:25 +0100
Message-ID: <01f601c460e4$fec10890$7102a8c0@Primary>

Notes in-line.


Jonathan Lewis The Co-operative Oracle Users' FAQ Optimising Oracle Seminar - schedule updated May 1st

The figures represent totals from running the same statement 10 different times with different bind variables, that is on average the elapsed time is 1.429 seconds per statement execution. Also because the report is based on 10 runs of a statement any discrepancies in the figuring of e, ela, or c are magnified.

[jpl] Not necessarily, though you may know it to be true in your case.
[jpl] In the general case, 10 runs would be more likely to flatten out
[jpl] minimise descrepancies.

The statements ran starting at 12:05 PM on Jun 25. Statspack from noon to 12:15 reported 630 seconds of CPU time. Again there are four CPU's, the machine was not overloaded.

My original question had to do as to why "sum(ela)" + "c" was over 1.5 times as high as "e", and whether for a statement running on a single CPU one needed to divide the reported CPU time by the number of processors on the machine just as one would when looking at total CPU time across the entire machine. If I do that, then ela + c < e, but the error is much much less.

[jpl] Without knowing what tools you are using to produce
[jpl] the numbers, and where they are coming from, and what
[jpl] actually is happening in the code, it is not possible to give
[jpl] a guaranteed answer to that question. But if you are just
[jpl] reading v$mystat and v$session_event for the session, and
[jpl] parts of the query are parallelised, you need to know that
[jpl] PX slave stats are summed back to the QC, but PX slave
[jpl] waits are not. So any attempt to add ela to c to get
[jpl] elapsed time would be misguided.
[jpl] On the other hand, you didn't mention any PX Deq wait
[jpl] time, and I assumed from the reference to ela and c that
[jpl] you are processing a 10046 trace file - so the simple answer
[jpl] to your original question is no - you don't need to divide
[jpl] the c figure by the number of processors.

There are things outside of disk waits and CPU times which need to be researched. Such as why submit 10 different requests for 10 different signals. The requests themselves union a daily partioned table with indexes and a non-indexed live table holding a single calendar days worth of data partitioned every 10 minutes. The non-indexed table is the one reporting the scattered read waits. The table is not indexed as it needs to collect signal data in real time and is employing direct mode inserts via OCI. Exactly how the partition sizes were decided, I don't know. Partition pruning is successful.

No one is complaining about the above response time, but it can vary during the day due to machine load, and how much of the data is in cache, at times reaching unacceptable levels. Faster hardware is being considered and I'm trying to figure how much if any that would help by figuring how much time is actually spent on CPU for these queries vs. waits for physical I/O.

Ian MacGregor
Stanford Linear Accelerator Center

Please see the official ORACLE-L FAQ:

To unsubscribe send email to: put 'unsubscribe' in the subject line.
Archives are at
FAQ is at
Received on Sat Jul 03 2004 - 05:00:10 CDT

Original text of this message