반응형
사전작업
- 데이터 준비
- 일반적으로 데이터가 클수록 속도 차이가 극명하게 드러난다.
INSERT INTO DAMIN.RANDOM (SELECT * FROM DAMIN.RANDOM); -- 반복
896,000개 행 이(가) 삽입되었습니다.
경과 시간: 00:00:06.519
인덱스 생성
- PARALLEL 2, NOLOGGING 모드로 생성
- 로그를 남기지 않고 병렬처리를 시킴으로써 속도 향상
CREATE INDEX IDX_COLB ON DAMIN.RANDOM(COLB)
NOLOGGING
PARALLEL 2;
Index IDX_COLB이(가) 생성되었습니다.
경과 시간: 00:00:02.169
2. LOG 를 남기고 병렬처리도 하지않고 생성
DROP INDEX IDX_COLB;
CREATE INDEX IDX_COLB ON DAMIN.RANDOM(COLB)
LOGGING PARALLEL 1;
Index IDX_COLB이(가) 생성되었습니다.
경과 시간: 00:00:02.762
-> 여기서는 속도차이가 0.5초밖에 나지 않지만 데이터양이 많을수록 더 속도차이가 극명하게 난다.
주의사항
주의할 점은 LOGGING, PARALLEL 처리를 한 뒤, 다시 돌려줘야 한다.
병렬 처리(PARALLEL)
- 인덱스를 생성할 때 병렬 처리를 사용하면, 여러 프로세스가 동시에 작업을 수행하므로 성능을 크게 향상시킬 수 있습니다. 그러나 병렬 처리는 시스템 리소스를 많이 사용하므로, 다른 트랜잭션과 리소스를 공유하는 환경에서는 신중하게 설정해야 합니다.
- **병렬도(PARALLEL n)**는 성능에 직접적으로 영향을 미칩니다. n 값이 높을수록 더 많은 프로세스가 작업을 나눠서 처리하게 되지만, 무조건 높은 병렬도가 성능 향상으로 이어지는 것은 아닙니다. 시스템 리소스와 병렬 작업 간의 균형을 맞추는 것이 중요합니다.
- 주의점: 병렬 처리 후, 인덱스가 기본 병렬도를 유지할 수 있으므로, 사용 후에는 PARALLEL 1로 되돌려주는 것이 좋습니다.
NOLOGGING 모드
- NOLOGGING 모드는 REDO 로그를 생성하지 않음으로써 디스크 I/O를 줄여 인덱스 생성 속도를 크게 향상시킵니다. 그러나 NOLOGGING 모드는 백업 및 복구 과정에서 문제가 발생할 수 있습니다. 따라서 대규모 데이터 로딩 작업이나 인덱스 생성 후, 다시 LOGGING으로 설정하는 것이 권장됩니다.
- 주의점: NOLOGGING 상태에서 발생한 작업은 복구 불가하므로, 반드시 백업 작업 이후 또는 대량 로딩 후 로그를 남기는 설정으로 되돌려야 합니다.
ALTER INDEX STUDENT_IDX LOGGING;
ALTER INDEX STUDENT_IDX PARALLEL 1;
반응형
'ORACLE > Oracle_SQL' 카테고리의 다른 글
인덱스 관련 쿼리 정리 (0) | 2023.07.02 |
---|---|
인덱스 (0) | 2023.06.26 |
시스템 권한부여 (ANY) (0) | 2023.06.25 |
시스템 권한 | WITH GRANT/ADMIN OPTION (0) | 2023.06.09 |
DISTINCT, GROUP BY 중복 제거 (0) | 2023.06.04 |