행위

ORACLE NOLOGGING

DB CAFE

ORACLE LOGGING VS NOLOGGIN

LOGGING 과 NOLOGGING 은 CREATE TABLE 구문과 함께 지정할 수 있는 선택적인 파라미터이다. 

LOGGING 이라는 용어는 오라클 리두 로그를 의미하는 것으로 데이터베이스 내의 데이터에 대한 모든 변경 사항을 기록하기 위해 사용된다. CREATE TABLE 구문에 NOLOGGING 이 지정되면 NOLOGGING 으로 테이블이 만들어진다. NOLOGGING 으로 만들어진 테이블은 LOGGING 테이블보다 좀 더 적은 리두 로그 기록을 필요로 한다. NOLOGGING 으로 만들어진 테이블에 INSERT, UPDATE, DELETE 등의 작업을 수행하면 리두 로그가 전혀 생성되지 않을 것이라고 생각하기 쉽지만 이는 사실이 아니다.

NOLOGGING 으로 만들어진 테이블에 리두 로그 생성이 억제되는 것은 사실이지만 로그 생성을 억제하는 것은 특정한 작업에 한정되어 있으며 이러한 특정한 작업은 아래의 리스트와 같다. 아래의 리스트를 제외하면 NOLOGGING 으로 만들어진 테이블의 모든 작업은 리두 로그를 생성하게 된다.

* CREATE TABLE AS SELECT
* SQL*LOADER DIRECT PATH 로그
* DIRECT PATH 힌트 추가  (/* + APPEND */ 힌트를 통해)

리두 로그 기록을 완벽하게 피하는 방법은 전역 임시 테이블을 이용하는 방법 뿐이다. <comments />