library cache: mutex x on table and index objects

From: Tony Hasler <tony_at_aberdour.demon.co.uk>
Date: Mon, 7 Jan 2013 13:27:16 -0000
Message-ID: <541C155A7E084577823494D3D843CCBE_at_VMGENERAL>



Folks,  

I have a multi-threaded JAVA application that repeatedly executes a PL/SQL procedure that in turns calls a static (i.e. not dynamic SQL) MERGE statement of the form:  

MERGE INTO t1

           USING DUAL               ON (primary_key = :b1)

      WHEN MATCHED       THEN          UPDATE SET c1 = :b2

      WHEN NOT MATCHED       THEN          INSERT ( primary_key, c1)

             VALUES (:b1, :b2);    

I found a substantial amount of "library cache: mutex x" wait events in ASH for this statement and then used Andrey S. Nikolaev's mutex_ash_waits.sql script to identify the objects being waited on. The objects were the table T1 and its associated primary key index. I would have thought that contention between the threads would manifest itself as buffer busy waits or latch: cache buffer chain waits or even enq TX waits but I am at a loss as to how to interpret this 11.2.0.2 behaviour.  

 Anybody got any ideas what it may be?  

--Tony
 

--

http://www.freelists.org/webpage/oracle-l Received on Mon Jan 07 2013 - 14:27:16 CET

Original text of this message