RE: Insert into parent table gives row exclusive locks on the child tables in 11g

From: Reardon, Bruce (RTABBAY) <"Reardon,>
Date: Tue, 7 Jul 2009 09:04:24 +1000
Message-ID: <>

I have now found which describes that the Row-S locks on the child tables were introduced in 9.2.0 to address problems with parallel DML hanging.

I have logged a SR with Oracle, but would also appreciate any comments on why 11g shows Row-X locks on the child tables. Or if others see this in / their

Bruce Reardon

-----Original Message-----
Sent: Friday, 3 July 2009 4:40 PM
<< paraphrased >>

We have recently upgraded from to on Windows 2003R2 SP2 32 bit and have experienced a block lock situation involve foreign keys. We do not think it is due to missing indexes.

We don't yet have a full reproducer that does not rely on our full database, but do have a cut down example that shows the exclusive locks on the child tables. In this case, updates to the child tables are not blocked.

The question - why did 11g change the child locks to being row exclusive?
This may help us understand why in the full example we get child updates blocked.

The reproducer can be found at w-exclusive-locks-on-the-child-tables-in-11g

In, we see a TM DML enqueue lock Row-X (SX) on the parent_tbl. In 9.2 and 10.2 we see the addition of "TM DML enqueue lock Row-S (SS)" on the 2 child tables.
In, we see the lock on the child tables is now row exclusive - "TM DML enqueue lock Row-X (SX)".

Bruce Reardon

This email is confidential and may also be privileged. If you are not the intended recipient, please notify us immediately and delete this message from your system without first printing or copying it. Any personal data in this email (including any attachments) must be handled in accordance with the Rio Tinto Group Data Protection Policy and all applicable data protection laws.

Received on Mon Jul 06 2009 - 18:04:24 CDT

Original text of this message