Re: db file sequential/scattered read - physical or logical io or both?
- From: Oracle Dba Wannabe <oracledbawannabe@xxxxxxxxx>
- To: Niall Litchfield <niall.litchfield@xxxxxxxxx>
- Date: Mon, 14 Jun 2010 13:22:41 -0700 (PDT)
oh yeah - it is indeed a package - does my head in just reading through it.
There is tons of other sql generated when this report runs - but the sql I sent
earlier is the mother...the queen bee if you will of statements in the 300mb
trace file.
I've not actually checked how it behaves without the calls to the package - Are
you thinking recursive issues? Or have tried to much to read into the package
code.
________________________________
From: Niall Litchfield <niall.litchfield@xxxxxxxxx>
To: Oracle Dba Wannabe <oracledbawannabe@xxxxxxxxx>
Cc: Oracle-L@xxxxxxxxxxxxx
Sent: Tue, June 15, 2010 1:15:34 AM
Subject: Re: db file sequential/scattered read - physical or logical io or
both?
Hey
is PKG_ADMIN_ACTIVITY_DETAIL a package with cursors and other helpfully
confusing stuff in it :) . Or put another way, does the exact same select
without the calls to the package behave nicely?
Niall
On Mon, Jun 14, 2010 at 8:33 PM, Oracle Dba Wannabe
<oracledbawannabe@xxxxxxxxx> wrote:
>
>Hi Niall,
>Well you did ask for it - and I've attached it :). Looking through the plan it
>appears to be, at first sight, an issue will a full table scan and partition
>range scan through all partitions - no elimination takes place here - this is
>also where the bulk of the rows appear to come from.
>
>I hear you on the less reads per row - I've seen tremendous benefit by tuning
>a query that already executes in about a second. Why would I focus on a query
>with a response time like that. The issue was that it only had to return one
>row, but in doing so touched/read thousands of blocks. The other issue was the
>query was executed over and over - also thousands of times within 30 minute
>intervals. It was a business critical function - there was no way to avoid
>this (reduce its execution). Eventually got it down to a few i/os to obtain
>that same one row. The result - more predictable performance in the business
>function and a massive drop in overall cpu utilization...yeah well, I thought
>I'd just mention that.
>
>
>
>
________________________________
From: Niall Litchfield <niall.litchfield@xxxxxxxxx>
>To: oracledbawannabe@xxxxxxxxx
>Cc: Oracle-L@xxxxxxxxxxxxx
>Sent: Mon, June 14, 2010 9:44:22 PM
>
>Subject: Re: db file sequential/scattered read - physical or logical io or
>both?
>
>
>
>A few comments. First it looks like your tkprof is suggesting that you read
>43m rows to return 700k or so. I'd therefore be quite interested in seeing
>what the execution plan was, 50 reads per row isn't horrible, but imagine what
>might happen if it could be 1 read per row or fewer.
>Niall Litchfield
>On Jun 14, 2010 1:41 PM, "Oracle Dba Wannabe" <oracledbawannabe@xxxxxxxxx>
>wrote:
>>
>>
>>Hi All,
>>Thanks for the responses. The report itself is actually a problem - to
>>resolve it I understand I need to address the number of i./o's issued by it.
>>That said, I posed this question because I just wanted to try and understand
>>how oracle issues reads. The reason the naming of the wait events confused me
>>- was I've also understood them to mean physical reads. What didn't make
>>sense to me was why after the report completed and I submitted it again there
>>were still wait events for reads issued in awr - I would have thought the
>>data was cached. I had traced each run of the session, but had just not
>>looked into the trace file yet (my mistake) and was only looking at the awr
>>file. Looking at the trace I see the following:
>>
>>call count cpu elapsed disk query current
>>rows
>>------- ------ -------- ---------- ---------- ---------- ----------
>>----------
>>Parse 1 0.00 0.00 0 0 0
>> 0
>>>>Execute 1 0.00 0.00 0 0 0
>>>> 0
>>Fetch 90966 2752.59 2690.45 0 43989168 0
>>727721
>>------- ------ -------- ---------- ---------- ---------- ----------
>>----------
>>>>total 90968 2752.59 2690.46 0 43989168 0
>>>>727721
>>
>>Which appears to indicate zero disk reads. However AWR, shows the following:
>>
>>
>>Event
>>Waits
>>Time(s)
>>Avg Wait(ms)
>>% Total Call Time
>>Wait Class
>>db file sequential read 1,191,745 1,368 1 45.3 User I/O
>>There's nothing else running on this system other than this SQL (it was a
>>weekend afterall). So although my trace file shows no physical read events -
>>how do I account for the 1.1 million wait events - The load profile on awr
>>looks like this:
>>
>>
>>Per Second
>>Per Transaction
>>
>>
>>
>>
>>
>>
>>Logical reads: 15,445.20
>> 19,592.96
>>Block changes: 38.26
>> 48.54
>>Physical reads: 658.30
>> 835.08
>>So are the db file sequential reads a result of waits from reads at the
>>storage cache? the file system cache (have filemin_cache at 3% and
>>filemax_cache 10% total memory =120GB), the oracle buffer cache or all three?
>>Or is it just the first 2 and does not include the buffer cache requests as a
>>call for data in the buffer cache does not translate to a read wait event?
>>>>A bit more detail on this system: The server is a 2 Node RAC (10.2.0.4) on
>>>>HP-UX 11.31, Super Dome, the storage is XP 24k, the db cache size is approx
>>>>60GB on each node.
>>Thanks once again.
>>
>>
>>
________________________________
From: Greg Rahn <greg@xxxxxxxxxxxxxxxxxx>
>>To: oracledbawannabe@xxxxxxxxx
>>Cc: oracle-l@xxxxxxxxxxxxx
>>Sent: Mon, June 14, 2010 11:23:24 AM
>>Subject: Re: db file sequential/scattered read - physical or logical io or
>>both?
>>
>>When you run the report via SQL*Plus with autotrace on, (or look at the
>>session stats) what is the ...
>>
>
--
Niall Litchfield
Oracle DBA
http://www.orawin.info
Other related posts: