library cache: mutex x on table and index objects

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


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:  


           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 behaviour.  

 Anybody got any ideas what it may be?  


-- Received on Mon Jan 07 2013 - 14:27:16 CET

Original text of this message