RE: Insert into parent table gives row exclusive locks on the child tables in 11g
Date: Tue, 7 Jul 2009 09:04:24 +1000
I have now found
https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=223303.1 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 184.108.40.206 / their 220.127.116.11.
Sent: Friday, 3 July 2009 4:40 PM
<< paraphrased >>
We have recently upgraded from 18.104.22.168 to 22.214.171.124 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
This may help us understand why in the full example we get child updates blocked.
The reproducer can be found at
In 126.96.36.199, 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 188.8.131.52, we see the lock on the child tables is now row exclusive - "TM DML enqueue lock Row-X (SX)".
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