Admin/admin

REDO-LESS OPERATIONS (NOLOGGING OPTION)

Qhtlr 2007. 7. 23. 08:54

REDO-LESS OPERATIONS (NOLOGGING OPTION)
======================================

Explanation
-----------

일부 operation의 경우 redo를 생성시키지 않는 것이 가능하다. 예를 들어
direct loader나, CREATE TABLE AS SELECT 나 CREATE INDEX에 NOLOGGING 옵션
을 사용하는 경우를 들 수 있다. 이 경우 redo 생성이 되지 않는다.

주의해야 할 것은 이 경우에도 data dictionary에 대한 변동 사항에 대해서는 operation에 의해 영향을 받는 block들에 대해 여전히 redo 가 생성이 된
다는 것이다. 또한 source object에 대해 delayed block cleanout 이 수행될 경우에도 redo가 생성된다.

오라클 8 부터는 다음 SQL 문장들에 NOLOGGING 옵션을 사용 할 수 있는 기능이 추가 되었다.

Direct-load INSERT
ALTER TABLE … MOVE PARTITION
ALTER TABLE … SPLIT PARTITION
ALTER INDEX … SPLIT PARTITION
ALTER INDEX … REBUILD
ALTER INDEX … REBUILD PARTITION

From the Oracle8 Reference Manual:

insert 시 nologging을 적용 시키려면 무조건 direct path insert를 하셔야 합니다. 그렇지 않으면 nologgin을 명시하였다 하더라도 nologging 은 먹히지 않습니다.

insert /*+ append */ into A
nologging
select *
from B

혹은

alter session enable parallel dml;
insert /*+ parallel */ into A
nologging
select *
from B