Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: enqueue waits -- CI

Re: enqueue waits -- CI

From: Jeffery W <wangjing_at_prodigy.net>
Date: Thu, 17 May 2001 01:31:09 -0700
Message-ID: <F001.00305DBF.20010517005549@fatcity.com>

Hi Diego,

     If lock type is 'TX',  rollback segment number = trunc(p2/65536)
     and slot number = p2 - 65536*trunc(p2/65536).

     May I know which table you are looking at to get the following
detailed info about enqueue waits?

 Enqueue Stats



TY GETS WAITS
-- --------- ---------
CF        68         0
CI     11178        84
CU     17970        12
DL       109         0
DR       102         0
DX      6219         0
IS        72         0
MR       140         0
RT         1         0
SQ      2472         5
SS         1         0
ST      3207        34
TM    278918         5
TS      4655         0
TX    210057        57
UL      3500         0
US     30496         0
WL        10         0

18 rows selected.

 Thanks

 Jeffery

Diego Cutrone wrote:

> Thanks for answering Unal, John.
>
> John, you were right about the query. I've corrected it. And I'm not getting
> "T[" and "CK" anymore,now I get TX and CI.
> I've also done further investigation and I also know now what p2 and p3
> mean.
>
> This is the updated data: (from the dumps)
> ------------------------------------------------
> count TYPE MODE
> 13 CI 6 p2=0 p3=5 ela=0
> 19 TX 6 p2=262223 p3=53352 ela=301
> 75 TX 4 p2=524391 p3=50022 ela=301
> 75 TX 6 p2=720923 p3=5194 ela=301
> 104 TX 6 p2=196736 p3=52393 ela=301
> 305 TX 6 p2=393276 p3=50281 ela=301
> ------------------------------------------------
>
> Now, how can I get the rollback segment number involved in the TX ? (I know
> its from p2 and p3, but how?) --just curious. I'll also take John advise,
> and I'll try to identify the locking session(s).
>
> Now, although CI enqueue waits (cross instance call invocation) are brief on
> this sample, Sometimes it's not.
> So I'm trying to understand what it means. According to p2 and p3 flags,
> they are indicating "Flush buffers for reuse as new class", that means that
> a session needs a buffer (in the shared pool I think) and it has to flush
> some others in order to get space. am I correct?.
> I've also read a metalink document (1020355.102). According to this, one
> possible cause is that my application is using dbms_pipe extensively (it may
> be right, I've seen event "pipe get" very high). The suggested solution is
> to increase the shared_pool. I can't access the other documents mentioned
> in the paper.
>
> Can someone explain to me what means this CI enqueue and how can I reduce
> it.
> TIA
>
> ----- Original Message -----
> To: Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com>
> Sent: Tuesday, May 15, 2001 6:16 PM
>
> > Hi Diego,
> >
> > Without going into details, an 'enqueue' wait is mostly due to a
> > user/program initated transaction lock and I see it a lot in Financial
> > databases (I see you are on 10.7?). I deduce you were looking at
> > V$SYSTEM_EVENT - If a user locked one row (probably queried a row in
> Forms,
> > inadvertly changed one character which issues a 'SELECT for UPDATE, thus
> > locking that row) and anotehr user (through a form or a report) needs to
> > perform DML on that particular row, then (I believe) you will clock up
> time
> > against the 'enqueue' event.
> >
> > What I would suggest is that you use the following query to determine if
> > someone is locking someone else out:
> >
> > select event, count(*) from v$session_wait
> > group by event
> >
> > If you see the 'enqueue' event in this list, some process is probably
> > waiting on a lock... You can then trace the user/process via Lock
> detection
> > scripts (see Metablink) and kill the blocking process. You could also
> query
> > from sys.dba_waiters which will present an easier picture in this case..
> >
> > As far as the SQL goes, see below:
> >
> > select
> > chr(bitand(&&p1,-16777216)/16777215)||chr(bitand(&&p1,16711680)/63365)
> > "Lock", <----- I believe the value is '65535', rather than 63365)
> > to_char(bitand(&&p1,65535)) "Mode"
> > from dual
> >
> > You can learn a lot from the Oracle 8.1 Reference Manual - Appendix A.
> > "Oracle Wait Events" and App B "Oracle Enqueue Names". While they are
> > applicable for 8.1, most of the info is valid for 7.3 as well...
> >
> > Please let us know if you need additional info.
> >
> >
> > John Kanagaraj (A long time member of the "Always look at v$session_wait
> > first" camp)
> > Oracle Applications DBA
> > Hitach Data Systems, Santa Clara
> > Work : (408) 970 7002
> >
> > -----Original Message-----
> > Sent: Tuesday, May 15, 2001 11:50 AM
> > To: Multiple recipients of list ORACLE-L
> >
> >
> >
> > Hi List,
> >
> > I'm trying to identify the possible cause of contention in a database:
> >
> > Oracle 7.3.4.0.0 // HP-UX 10.20 // FINANCIALS
> >
> > As far I can see, event "enqueue" is on top (followed by some buffer busy
> > waits)
> >
> > EVENT TIME_WAITED AVERAGE_WAIT
> > ------------
> > enqueue 854176 3746.39 (why is the
> > average wait so high?)
> > buffer busy waits 292770 1.53
> >
> > Enqueue Stats
> > ----------------------
> >
> > TY GETS WAITS
> > -- --------- ---------
> > CF 68 0
> > CI 11178 84
> > CU 17970 12
> > DL 109 0
> > DR 102 0
> > DX 6219 0
> > IS 72 0
> > MR 140 0
> > RT 1 0
> > SQ 2472 5
> > SS 1 0
> > ST 3207 34
> > TM 278918 5
> > TS 4655 0
> > TX 210057 57
> > UL 3500 0
> > US 30496 0
> > WL 10 0
> >
> > 18 rows selected.
> >
> > Now, in order to get further information about this wait, I've been
> tracing
> > (for some reasonable time) some sessions (session in which I detected
> > enqueue waits).
> >
> > This is a "sample" of what I got :
> >
> > ****************************************************
> >
> > /u02/oracle/admin/FNCL/udump/ora_26851.trc:WAIT #3: nam='enqueue' ela= 0
> > p1=1128857606 p2=0 p3=5
> > /u02/oracle/admin/FNCL/udump/ora_26851.trc:WAIT #3: nam='enqueue' ela= 0
> > p1=1128857606 p2=0 p3=5
> > /u02/oracle/admin/FNCL/udump/ora_26851.trc:WAIT #3: nam='enqueue' ela= 0
> > p1=1128857606 p2=0 p3=5
> > /u02/oracle/admin/FNCL/udump/ora_26554.trc:WAIT #38: nam='enqueue' ela=
> 302
> > p1=1415053318 p2=196736 p3=52393
> >
> > ****************************************************
> >
> > From this info I got the following summary:
> >
> > (a) (b) (c)
> >
> > 1 T[ 6 p2=983149 p3=6796 ela=175
> > 2 T[ 6 p2=196736 p3=52393 ela=300
> > 2 T[ 6 p2=393276 p3=50281 ela=300
> > 3 CK 6 p2=0 p3=5 ela=3
> > 8 CK 6 p2=0 p3=5 ela=1
> > 9 T[ 6 p2=983149 p3=6796 ela=301
> > 12 CK 6 p2=0 p3=5 ela=0
> > 19 T[ 6 p2=262223 p3=53352 ela=301
> > 75 T[ 4 p2=524391 p3=50022 ela=301
> > 75 T[ 6 p2=720923 p3=5194 ela=301
> > 104 T[ 6 p2=196736 p3=52393 ela=301
> > 305 T[ 6 p2=393276 p3=50281 ela=301
> >
> > where (a) is the total amount of equal entries in the dumps (number of
> times
> > it appears the same entry in the dumps), say a "sort -nr | uniq -c"...
> ,(b)
> > is the LOCK TYPE (CF,CI,etc) and (c) is the LOCK MODE (ej: MODE
> 6=Exclusive
> > lock).
> >
> > Now, my questions are:
> >
> > 1) I couldn't find "T[ " LOCK TYPE. What is this? am I getting it wrong?,
> > this is the query I used
> >
> > select
> > chr(bitand(&&p1,-16777216)/16777215)||chr(bitand(&&p1,16711680)/63365)
> > "Lock",
> > to_char(bitand(&&p1,65535)) "Mode"
> > from dual;
> >
> > 2) What does P2 and P3 mean? Can someone send me some information about
> it.
> >
> > 3) How would you interpret this information and what can be done in order
> to
> > eliminate (or at least minimize) enqueue locks in this database?
> >
> >
> > Thanks.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> > Please see the official ORACLE-L FAQ: http://www.orafaq.com
> > --
> > Author: John Kanagaraj
> > INET: john.kanagaraj_at_hds.com
> >
> > 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: ListGuru_at_fatcity.com (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).
>
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> --
> Author: Diego Cutrone
> INET: dcutrone_at_afip.gov.ar
>
> 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: ListGuru_at_fatcity.com (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).

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jeffery W
  INET: wangjing_at_prodigy.net

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: ListGuru_at_fatcity.com (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).
Received on Thu May 17 2001 - 03:31:09 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US