Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: create table as select * takes one commit?
Marc Blum wrote:
> On Sun, 21 Apr 2002 22:33:51 +1000, "Howard J. Rogers" > <dba_at_hjrdba.com> wrote: >
> > but what about that one? Tom Kyte proves, that INSERT /*+ APPEND */ > generates minimized undo: > >
Yeah, as ever I've over-stated the case. I was actually answering the question whether nologging switches off undo just as it switches off redo, and of course it doesn't, but to say it has no effect whatsoever is just silly, and my hyperbole gone mad.
APPEND means chuck the stuff where no-one can read it (above the high water mark). If no-one can read it, we don't have read consistency issues. If we don't have read-consistency issues, we don't need the undo.
So yes, it does have an effect.
On the other hand, practically it isn't going to make that much difference, because of indexes. Assuming that most tables these days have an index on them somewhere, then undo still gets generated in quite substantial quantities because the index maintenance performed by the bulk load still has to generate undo -index entries have to take place where they are positionally meaningful - ie, where anyone can read them. So undo is needed for read-consistent images of the leaf nodes.
However, you originally said that undo was 'minimized',so you were right and I was wrong, because even with stacks of indexes in place, you'll be generating much less undo than you would have done without the APPEND hint.
My apologies.
Regards
HJR
Received on Sun Apr 21 2002 - 15:13:21 CDT
![]() |
![]() |