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는 대량의 데이터를 삽입할 때 강력한 성능 향상을 제공하지만, 적절한 튜닝과 주의사항을 고려해야 합니다. 🚀
1. 타입스크립트 개요 타입스크립트(TypeScript)는 마이크로소프트(Microsoft)가 개발한 자바스크립트(JavaScript)의 상위 집합(Superset) 언어입니다.즉, 자바스크립트에 정적 타입(Static Type)을 추가하고,…
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…