Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spring
- 코틀린
- 생성
- aws
- 프로그래머스
- oracle
- mybatis
- jquery
- 방법
- 오라클
- kotlin
- 에러
- 넥사크로
- 알고리즘
- Git
- db
- JPA
- IntelliJ
- Java
- Eclipse
- 시큐리티
- 쿼리
- error
- 함수
- GitHub
- Security
- 자바
- Vue
- 스프링
- JavaScript
Archives
- Today
- Total
송민준의 개발노트
Nologging 본문
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;
참고 사이트
'DB' 카테고리의 다른 글
Oracle DB 파티션이란? (0) | 2020.08.15 |
---|---|
테이블의 용량 초기화 (0) | 2020.06.01 |
Mybatis 동적 쿼리(like 사용 및 가변 컬럼 사용) (0) | 2019.12.27 |
외래키 제약조건 걸린 테이블 삭제 방법 (0) | 2019.12.24 |
간단한 프로시저 예제 (0) | 2019.11.18 |