RE: Partition Exchange Instantaneous?
- From: "Bobak, Mark" <Mark.Bobak@xxxxxxxxxxxx>
- To: "ahmusch@xxxxxxxxx" <ahmusch@xxxxxxxxx>, "japplewhite@xxxxxxxxxxxxx" <japplewhite@xxxxxxxxxxxxx>
- Date: Thu, 23 Jun 2011 11:38:44 -0400
Or, if you're on 11g, you can set ddl_lock_timeout, to slip ddl changes in while dml is running against a table. -Mark -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Adam Musch Sent: Thursday, June 23, 2011 11:05 AM To: japplewhite@xxxxxxxxxxxxx Cc: oracle-l@xxxxxxxxxxxxx Subject: Re: Partition Exchange Instantaneous? You can't lose the rows being inserted. They'll be inserted into the one and only one segment appropriate - or it'll throw an exception that there's no partition for that row. However, DML can block a partition exchange operation, so it's best to wrap such changes in a loop akin to Jonathan Lewis' do_ddl function in order to eat ORA-00054 errors caused by an inability to get an exclusive lock on the partition being shuffled out. On Wed, Jun 22, 2011 at 12:53 PM, <japplewhite@xxxxxxxxxxxxx> wrote: > > Since the Partition Exchange is a Data Dictionary process only, I'm assuming > that, should there be a DML transaction on the main table during the > Exchange, the Audit row(s) will either go into the old Audit table segment > or be put into the new, empty exchanged-in segment. Have there been any > reports or situations where a transaction's data got "lost" during a Segment > Exchange? I can't find anywhere that Oracle guarantees it won't happen. -- Adam Musch ahmusch@xxxxxxxxx -- http://www.freelists.org/webpage/oracle-l -- http://www.freelists.org/webpage/oracle-l