Regarding the Enqueues:
One follow-up is to connect as SYS and look at
x$ksqst where ksqstwat != 0.  This tells you two
things (after the event).  First, which type of
enqueue has suffered waits, and secondly whether
the waits in v$session_wait are represent a few
very long waits or lots of shorter waits.
(v$session_wait increments every 3 seconds,
x$ksqst just once at the end)

However, since your wait time is a large fraction
of your elapsed time, you will probably be able to
get some extra information simply by running a query
against v$session_wait where name = 'enqueue' a
couple of dozen times in quick succession.
For the same reason, if you look at v$lock where
request != 0 at  regular intervals, you will be able to
see the type and id of the wait.

If you can identify the enqueue type, request mode,
and id values, then you can track down causes more
easily.


Regarding the db file sequential read:
Can I confirm that your report is describing a job
where your session runs for six hours, and reports
1 hour of enqueues, and 4 hours of db file sequential
reads, in that six hours ?

If that is the case, then even though the reads are
very fast reads (presumably helped by a large file-system
buffer) then I suspect your SQL (or the strategy surrounding
your use of SQL) needs to be examined.  You MAY be doing
an extreme amount of logical I/O to require 7M single block
reads for one (effective) hour of CPU usage.

For example, it is possible  that the code has been 'tuned'
to eliminate tablescans and increase hit ratios, with the
detrimental side-effect that the logical I/O has gone up
dramatically, and increased the actual cost of physical
I/O.  It is possible that the code has been written to loop
through cursors and 'emulate' joining by executing several
simple statements per row of the main cursor.

In the short term, you may get an improvement in
performance by shifting memory away from the
 file system buffer and into the Oracle buffer.
The logical I/O won't drop, but the number of waits
for filesystem interaction may.





Anjo,  the 307 is interesting. I have seen 307 and 107
(depending on wait event) appear as the max time with
remarkable frequency on Windows systems, even when
the machines were idle.  I wonder if this may be due to
some tick-granularity on Windows/DOS-based machines,
rather than stress.  (In fact, the first time I saw this was
on a Sun that was under extreme pressure, and I made
the same assumption that you did -  now I'm beginning
to wonder if there is more to it than that).



Jonathan Lewis
http://www.jlcomp.demon.co.uk

Author of:
Practical Oracle 8i: Building Efficient Databases

Next Seminar - Australia - July/August
http://www.jlcomp.demon.co.uk/seminar.html

Host to The Co-Operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html



-----Original Message-----


|The enqueue problem looks like an TX enqueue problem. Given the fact
that the
|average wait is 307 and max wait is 308,
|I can see that you are also running out of CPU on your box. The
normal max_wait
|should be 300 and the average wait should be less than 300.


|
|Sam Bootsma wrote:
|
|> We have a batch job taking a long time to process.  Querying the
|> v$session_wait view, I discovered there have been over 1200 enqueue
waits,
|> with an average wait of just over 307 and a max wait of 308.  The
total time
|> waited is 370081 (just over one hour if these figures are in
centiseconds).
|> The batch job has been running about 6 hours.
|>
|> I also see that db file sequential read has waited almost 4 hours.
This
|> sounds like 4 hours waiting on index access requests.  What could
cause
|> these long waits?
|>
|> I am not sure how to troubleshoot this problem further (Reading the
|> Performance 101 Book is on My To Do List).  This is Oracle 81630 on
Windows
|> NT server.
|>
|> Any suggestions or advice on how to troubleshoot this further is
much
|> appreciated.  Here is my query and the output:
|>
|> SQL> l
|>   1  select substr(event, 1,30), total_waits, time_waited,
average_wait,
|> max_wait
|>   2  from v$session_event
|>   3* where sid=18
|> SQL> /
|>
|> SUBSTR(EVENT,1,30)              TOTAL_WAITS TIME_WAITED
AVERAGE_WAIT
|> MAX_WAIT
|> ------------------------------          ----------------------
|> --------------------    -----------------------
|> ---------------------
|> latch free                                       5              0
|> 0                               0
|> enqueue                                 1204            370081
|> 307.376246                      308
|> buffer busy waits                               45              0
|> 0                               0
|> log file switch completion            2                 27
13.5
|> 17
|> log file sync                                   4               0
|> 0                               0
|> db file sequential read                 7269278         1375000
|> .18915221                       29
|> direct path read                                4
10
|> 2.5                     10
|> direct path write                       1098            112
|> .102003643              2
|> file open                                       4               0
|> 0                               0
|> SQL*Net message to client        555            0               0
|> 0
|> SQL*Net more data to client       11            1
.090909091
|> 1
|> SQL*Net message from client     555             3256
5.86666667
|> 1038
|>
|> Thanks again for any pointers and suggestions.
|>
|> Sam Bootsma, OCP
|> Technical Support Analyst
|

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jonathan Lewis
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to