library cache: mutex x on table and index objects
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