Parallel Execution 요약
| 구분 | 설명 |
|---|---|
| 병렬 실행 정의 | 하나의 SQL 문을 여러 병렬 서버 프로세스로 나누어 동시에 실행하여 성능을 향상시키는 기능 |
| 주요 대상 | SELECT, INSERT, UPDATE, DELETE (DML) / CREATE INDEX, CTAS, MOVE 등 (DDL) |
| 병렬도 (DOP) |
|
| 데이터 분배 방식 |
|
| 최적화 기법 |
|
| 자원 관리 | Resource Manager로 PX 세션 제어, DOP 제한 가능 |
| 모니터링 뷰 | V$PQ_TQSTAT, V$PX_SESSION, V$PX_PROCESS 등 |
| 모범 사례 |
|
1. 병렬 실행 개요 • 정의: 하나의 SQL 문을 여러 프로세스(병렬 서버 프로세스)로 분할하여 동시에 실행하는 기능. • 목적: 대용량 데이터베이스에서 성능 향상 및 자원 활용 최적화. • OLTP보다는 Data Warehouse, VLDB 환경에서 주로 사용.
⸻
2. 병렬 실행 대상 • SQL 문: SELECT, INSERT, UPDATE, DELETE • DDL 문: CREATE INDEX, CREATE TABLE AS SELECT (CTAS), MOVE, SPLIT PARTITION 등 • DML 문: Direct-Path Insert, 병렬 UPDATE/DELETE
⸻
3. 병렬도(Parallelism Degree, DOP) • DOP 정의: 동시에 실행할 프로세스 수 • 설정 방법: • 수동 설정: PARALLEL 힌트 또는 테이블/인덱스 속성에 지정 • 자동 설정: 옵티마이저가 통계와 리소스를 기반으로 결정 • 적응형(Adaptive DOP): 실행 중 워크로드에 맞춰 동적으로 조정 • 제한: 시스템 리소스 부족 시 DOP는 자동으로 줄어듦
⸻
4. 병렬 실행 전략 • Granules(작업 단위): 전체 작업을 작은 단위로 나누어 PX 서버가 분담 • 데이터 분배 방식 • Hash Distribution: 같은 해시값끼리 같은 서버에서 처리 • Range Distribution: 값 범위별로 분배 • Broadcast: 소규모 데이터를 모든 서버에 복제
⸻
5. 주요 최적화 기법 • Partition-Wise Joins: 같은 파티션 간 조인을 PX 서버끼리 수행 → 네트워크 부하 최소화 • Parallel DML: INSERT/UPDATE/DELETE 작업도 병렬 처리 가능 (단, 제약조건 관리 주의) • Parallel DDL: 인덱스 생성/재구축, 테이블 이동 등 대규모 DDL 작업의 시간 단축
⸻
6. 자원 관리 및 모니터링 • 자원 제한: Resource Manager를 통해 PX 사용량 제어 가능 • 모니터링 뷰: V$PQ_TQSTAT, V$PX_SESSION, V$PX_PROCESS 등에서 병렬 실행 상태 확인 가능 • 자동 튜닝: 실행 계획에 따라 옵티마이저가 PX 활용 여부와 방식 결정
⸻
7. 모범 사례 • 병렬 실행은 대용량 처리에 효과적이지만, OLTP 환경에서 무분별하게 사용하면 자원 경합 발생 가능 • 적절한 DOP 설정과 리소스 관리 정책 필요 • 파티셔닝과 결합하면 PX 효과 극대화
⸻
✅ 요약하면: 병렬 실행(Parallel Execution)은 VLDB에서 대용량 SQL/DML/DDL을 빠르게 수행하기 위한 핵심 기능이며, DOP 조정, 데이터 분배 전략, 파티션 조인, 자원 관리, 모니터링이 주요 포인트입니다.