송민준의 개발노트

Nologging 본문

DB

Nologging

송민준 2020. 6. 1. 23:30

DB에서는 데이터를 입력하면 로그파일에 기록한다.

즉 DML이 발생하면서 많은 양의 로그들이 발생하는 것이다.

이런 부분에서 성능이 저하될 수도 있다.

 

Check point 라는 이벤트가 발생하면 로그파일의 데이터를 데이터 파일에 저장한다.

Nologging 옵션은 로그파일의 기록을 최소화시켜서 입력 시 성능을 향상시키는 방법이다.

Nologging 옵션은 Buffer Cache 라는 메모리 영역을 생략하고 기록한다.

INSERT INTO DEPT_TEST
SELECT * FROM DEPT;

위와 같은 INSERT 구문을 Direct Insert를 사용함면 적은 양의 Redo를 생성한다.

(성능 개선을 위해선 Redo를 줄여야함)

ALTER TABLE DEPT_TEST NOLOGGING;

INSERT /*+APPEND */ INTO DEPT_TEST
SELECT * FROM DEPT;

위와 같이 Nologging 옵션 부여와 APPEND 힌트를 사용하였다.

 

혹은 아래와 같은 방법이 있다.

ALTER SESSION ENABLE PARALLEL DML;

ALTER TABLE DEPT_TEST NOLOGGING;

INSERT /*+PARALLEL(A 4) */ INTO DEPT_TEST A
SELECT * FROM DEPT;

 

 

 

참고 사이트

http://www.gurubee.net/lecture/2692