Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: spontaneous rollback and retry?

Re: spontaneous rollback and retry?

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Fri, 9 Jan 2004 08:59:59 -0000
Message-ID: <btlqig$r1m$1$8300dec7@news.demon.co.uk>

Note in-line.

-- 
Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

  The educated person is not the person
  who can answer the questions, but the
  person who can question the answers -- T. Schick Jr


Next public appearance2:
 March 2004 Hotsos Symposium - Keynote
 March 2004 Charlotte NC - OUG Tutorial
 April 2004 Iceland


One-day tutorials:
http://www.jlcomp.demon.co.uk/tutorial.html


Three-day seminar:
see http://www.jlcomp.demon.co.uk/seminar.html
____UK___February


The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html


"Richard Kuhler" <noone_at_nowhere.com> wrote in message
news:w0jLb.45890$C87.11580_at_twister.socal.rr.com...

> We believe we've found the source of the problem although not really the
> explanation. At the time the process was running, a DBA kicked of a
> DBMS_STATS analysis for this instance. We killed our process and the
> DBMS_STATS session and retried our process. This time it finished
> without any problems in the expected amount of time. To confirm this
> interaction, we ran our process again and started DBMS_STATS while it
> was running again. The same repeated rollback and retry behavior was
> observed. Something about the DBMS_STATS run is causing the issues with
> the MERGE operation.
>
Just bouncing ideas around - but when you generate stats you invalidate any cursors that may exist on the table. In simple case, if you are running in parallel, the parallel slaves get called about 13 times each to process a statement that addresses part of the data. But what they are given to process appears as an SQL statement with a few input parameters. If these cursors become invalid between calls, perhaps Oracle has to go into defensive mode and rollback the parallel update because reparsing the statement may change its execution path, which means one pass of the query MIGHT not identify the section of data that was intended when the QC wrote the SQL and this could therefore allow some data to be updated twice, and some data to be missed. (This seems a bit unlikely - but it's the only hypothesis I can come up with at the moment).
Received on Fri Jan 09 2004 - 02:59:59 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US