RE: how many LIOs is too many

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Tue, 28 Jan 2014 19:00:14 +0000
Message-ID: <CE70217733273F49A8A162EE074F64D901DD8CE8_at_exmbx05.thus.corp>



You're thinking of my rough guide of :  10,000 buffer gets per second per 100MHz of CPU.  (I think 100MHz was the unit, but I can't find the note at present).
I wasn't using that in this case (after all, we now know that the SQL was doing a lot of sorting and it;'s also applying some analytics).

This was simple:
EXECUTIONS = 789388         
CPU_SEC = 1719853.25

CPU per Exec = 2.1787 seconds per exec


Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
_at_jloracle

________________________________________
From: Dba DBA [oracledbaquestions_at_gmail.com]
Sent: 28 January 2014 18:35
To: ORACLE-L
Cc: Jonathan Lewis
Subject: Re: how many LIOs is too many

Jonathan,

A few years ago I think you had a blog post about roughly how to
translate LIOs to CPU. So your saying that with the typical modern
CPU, it can handle:

1719853 buffer gets * 1800 executions = per hour

How are you getting these numbers? This could be very useful when
doing capacity planning.


On 1/21/14, Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk> wrote:
>
> In this case the number of LIOs per execution is probably not the important
> bit - the important bit is that the query seems to take a little over 2 CPU
> seconds per execution.
> At 1,800 executions per hour (rather than the "few thousand" you suggest,
> this would be equivalent to eliminating one  of your CPUs. Unless you've got
> at least 8 (real) CPUs, you don't want to be running this query; if you've
> got a small number of real CPUs which are using threads to fake themselves
> up to look like lots of CPUs you really don't want to be running this
> query.
>
> To answer your question
> 1) Yes - and the bizarre thing is that the code fetch a couple of hundred
> rows in order, processed and updated the first one (which took it off the
> list) then re-ran the query to fetch a couple of hundred again.  If you
> can't see the code, try tracing it (and read the trace file) to see what the
> process does next after fetching the 500.
>

>
> SQL_ID           FETCHES EXECUTIONS DISK_READS BUFFER_GETS    CPU_SEC
> ELAPSEDSEC FIRST_LOAD_TIME
> ------------- ---------- ---------- ---------- ----------- ----------
> ---------- -----------------------
> 037xx0tb72t5r     789387     789388         80  1998534791 1719853.25
> 1820107.77 2013-12-18/08:06:26
>
> The LIO per exec was at ~1600 yesterday, it has gone to 2500 today.
>
> I have couple of questions
>
> 1) Has anyone in this list worked on an app that does repeated executions of
> a sql retrieving so many rows.
> 2) Is there any formula to calculate the number of LIOs for a SQL when it is
> time to say the sql is doing too many LIOs per exec.
>
> v11.2
> TIA,
> Ram.
>
>
--
http://www.freelists.org/webpage/oracle-l Received on Tue Jan 28 2014 - 20:00:14 CET

Original text of this message