RE: Nologging clause
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:
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,
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_at_freelists.org [oracle-l-bounce_at_freelists.org] On Behalf Of Greg Rahn [greg_at_structureddata.org] Sent: Tuesday, March 31, 2009 8:26 PM
To: William Wagman
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_at_ucdavis.edu> 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 -- http://www.freelists.org/webpage/oracle-l -- http://www.freelists.org/webpage/oracle-lReceived on Tue Mar 31 2009 - 19:39:46 CDT