본문 바로가기
카테고리 없음

파티셔닝과 병렬 처리 (Partitioning & Parallel Processing)

by 유형제맘 2025. 8. 14.

1. 파티셔닝(Partitioning) 개념

파티셔닝은 대용량 테이블이나 인덱스를 논리적으로 분할하여 관리하는 방법입니다.
하나의 테이블이 너무 크면 데이터 검색 속도가 느려지고 관리가 복잡해집니다.
이를 작은 단위로 나누어 성능과 관리 효율성을 높이는 것이 파티셔닝의 목적입니다.

장점

  • 특정 파티션만 읽어 I/O 감소 → 쿼리 성능 향상
  • 백업, 복구, 삭제 작업을 파티션 단위로 가능
  • 데이터 관리 유연성 향상

2. 파티셔닝 종류

파티셔닝 방식 특징 예시
범위 파티셔닝 (Range) 컬럼 값 범위에 따라 분할 2023년 데이터, 2024년 데이터
리스트 파티셔닝 (List) 특정 값 목록 기준으로 분할 서울, 부산, 대구
해시 파티셔닝 (Hash) 해시 함수로 균등 분할 ID % 4
복합 파티셔닝 (Composite) 두 가지 이상의 파티셔닝 조합 Range + Hash

3. 파티셔닝 활용 예시

CREATE TABLE SALES (
    SALE_ID    NUMBER,
    SALE_DATE  DATE,
    AMOUNT     NUMBER
)
PARTITION BY RANGE (SALE_DATE) (
    PARTITION P2023 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD')),
    PARTITION P2024 VALUES LESS THAN (TO_DATE('2025-01-01', 'YYYY-MM-DD'))
);
  • 2023년 데이터는 P2023, 2024년 데이터는 P2024 파티션에 저장
  • 2023년 데이터 조회 시 P2024는 아예 읽지 않음 → 성능 개선

4. 병렬 처리(Parallel Processing) 개념

병렬 처리는 하나의 SQL 문장을 여러 프로세스가 동시에 작업하도록 하여 성능을 높이는 기술입니다.
대용량 데이터 조회, 집계, 인덱스 생성 시 매우 효과적입니다.

작동 원리

  • 데이터를 멀티 프로세스/스레드로 분할 처리
  • 각 작업이 끝나면 결과를 합침
  • CPU, I/O 사용량이 증가할 수 있음 → 자원 상황에 따라 조정 필요

5. 병렬 처리 예시

SELECT /*+ PARALLEL(SALES, 4) */
       SALE_DATE, SUM(AMOUNT)
FROM SALES
GROUP BY SALE_DATE;
  • PARALLEL(SALES, 4)SALES 테이블을 4개의 프로세스로 병렬 처리
  • 4배 빠른 속도 기대 가능 (단, CPU 자원 충분해야 함)

6. 파티셔닝 + 병렬 처리 결합 효과

  • 파티셔닝 : 데이터 접근 범위를 최소화
  • 병렬 처리 : 나눠진 데이터 범위를 동시에 처리
  • 결합하면 대용량 환경에서 폭발적인 성능 향상 가능

7. 실행 계획 비교 (개념 흐름)

[미적용]  
쿼리 → 전체 데이터 풀 스캔 → 결과 반환

[파티셔닝 적용]  
쿼리 → 해당 파티션만 스캔 → 결과 반환

[파티셔닝 + 병렬 처리]  
쿼리 → 파티션별 병렬 프로세스 처리 → 결과 합침 → 반환

8. 정리

  • 파티셔닝은 데이터를 나눠서 관리 → 관리와 성능 모두 개선
  • 병렬 처리는 여러 작업을 동시에 수행 → 처리 속도 향상
  • 두 기술을 함께 사용하면 대용량 DB 성능 극대화
  • 하지만 병렬 처리 시 서버 자원 소모 증가에 주의해야 함