RE: Nologging clause

  • From: "Bobak, Mark" <Mark.Bobak@xxxxxxxxxxxx>
  • To: "greg@xxxxxxxxxxxxxxxxxx" <greg@xxxxxxxxxxxxxxxxxx>, William Wagman <wjwagman@xxxxxxxxxxx>
  • Date: Tue, 31 Mar 2009 20:39:46 -0400

To add to Greg's answer a bit, there are a few other operations that are 
"direct path", in addition to INSERT /*+ APPEND */.

Off the top of my head:
index creation/rebuild
create table as select ...

And there may be a few others.  Any non-append insert, any delete or update, 
will *always* log.

Hope that helps,

-Mark

PS  As far as insert /*+ append */ goes, it only applies to a multi-row insert, 
like insert /*+ append */ into tab select * from tab2;
Something like insert /*+ append */ into tab values(...); WILL log.


________________________________________
From: oracle-l-bounce@xxxxxxxxxxxxx [oracle-l-bounce@xxxxxxxxxxxxx] On Behalf 
Of Greg Rahn [greg@xxxxxxxxxxxxxxxxxx]
Sent: Tuesday, March 31, 2009 8:26 PM
To: William Wagman
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: Nologging clause

This is correct.  The [NO]LOGGING only changes direct path operations.
 That is, inserts with the /*+ APPEND */ hint.

So if you want NOLOGGING you need either:
- NO ARCHIVE LOG mode
- ARCHIVE LOG mode, NOLOGGING, and APPEND hint

On Tue, Mar 31, 2009 at 5:04 PM, William Wagman <wjwagman@xxxxxxxxxxx> wrote:
> It appears that he is saying that if a table is set to nologging and my 
> insert mode is append then even if archive logging is on no redo will be 
> generated. I'm still not sure I am understanding this correctly but I take 
> that to mean
>
> SQL> insert /*+ APPEND */ into <table>;
>
> Then no redo will be generated. Is that a correct understanding?

--
Regards,
Greg Rahn
http://structureddata.org
--
//www.freelists.org/webpage/oracle-l




--
//www.freelists.org/webpage/oracle-l


Other related posts: