Oracle에서는 병렬 INSERT를 통해 데이터를 빠르게 삽입할 수 있습니다. 일반적인 INSERT
작업은 단일 세션에서 수행되지만, 병렬 처리(Parallel Processing)를 이용하면 여러 개의 프로세스가 동시에 데이터를 삽입하여 성능을 향상시킬 수 있습니다.
병렬 INSERT는 여러 개의 병렬 프로세스를 활용하여 데이터를 삽입하는 기법입니다. Oracle은 데이터를 블록 단위로 나누고 여러 개의 프로세스가 동시에 데이터를 쓰도록 하여 성능을 극대화합니다.
✔ 주요 특징
PARALLEL
힌트를 사용하여 여러 프로세스가 동시에 데이터를 삽입병렬 INSERT는 세션 단위 설정 또는 SQL 단위 설정 방식으로 사용할 수 있습니다.
ALTER SESSION ENABLE PARALLEL DML;
PARALLEL
힌트를 사용해도 병렬 처리가 되지 않습니다.INSERT /*+ APPEND PARALLEL(t, 4) */ INTO target_table t
SELECT * FROM source_table;
APPEND
힌트: DIRECT PATH INSERT를 강제함PARALLEL(t, 4)
: target_table
을 4개의 프로세스가 병렬로 처리ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ APPEND PARALLEL(emp, 4) */ INTO emp
SELECT * FROM emp_backup;
emp_backup
테이블에서 데이터를 읽어와 4개의 병렬 프로세스를 사용하여 emp
테이블에 삽입ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ APPEND PARALLEL(sales, 8) */ INTO sales NOLOGGING
SELECT * FROM sales_backup;
sales
테이블에 데이터 삽입ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ APPEND PARALLEL(customers, 6) */ INTO customers
SELECT customer_id, name, region
FROM customer_staging
WHERE status = 'NEW';
customer_staging
테이블에서 status = 'NEW'
조건을 만족하는 데이터를 customers
테이블에 삽입CACHE
옵션을 사용하여 동시성을 보장CREATE SEQUENCE my_seq CACHE 1000;
ALTER INDEX REBUILD
)APPEND
는 DIRECT PATH를 사용하므로 ROLLBACK이 불가능방식 | 처리 시간 | CPU 사용량 | REDO 로그 발생량 |
---|---|---|---|
단일 INSERT | 느림 | 낮음 | 많음 |
병렬 INSERT | 빠름 | 높음 | 적음 (NOLOGGING 사용 시) |
PARALLEL(t, N)
)NOLOGGING
옵션을 적용하면 REDO 로그를 최소화하여 성능 개선 가능ALTER TABLE my_table STORAGE (FREELISTS 1);
APPEND
힌트를 사용하여 Direct Path Load 방식 적용항목 | 내용 |
---|---|
병렬 INSERT 사용 조건 | ALTER SESSION ENABLE PARALLEL DML 필요 |
DIRECT PATH 사용 | APPEND 힌트 적용 시 가능 |
INDEX 영향 | 기존 INDEX가 무효화될 수 있음 (재구성 필요) |
SEQUENCE 주의점 | CACHE 설정 권장 |
트랜잭션 처리 | APPEND 사용 시 ROLLBACK 불가 |
Oracle 병렬 INSERT는 대량의 데이터를 삽입할 때 강력한 성능 향상을 제공하지만, 적절한 튜닝과 주의사항을 고려해야 합니다. 🚀
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…