본문 바로가기
● Data Insights/SQL

MSSQL 분산 테이블(Distribution) 방식 개요

by DATA Canvas 2025. 11. 17.
반응형

Azure Synapse Analytics 또는 MPP(Massively Parallel Processing) 환경에서 대용량 테이블을 분산 저장할 때 주로 사용하는 세 가지 방식이 있습니다. 이들은 테이블 스캔 성능과 병렬 연산 효율을 결정짓는 핵심 요소입니다.


1. Round Robin 분산

개념
테이블의 각 레코드를 서버 노드(분산 단위)들에 순차적으로 고르게 분배하는 방식입니다.

  • 첫 행은 노드1, 둘째 행은 노드2…, 마지막 노드까지 분배 후 다시 노드1로 돌아와 순환.

사용도 & 장점

  • 데이터 편향 없이 고르게 분산 → 로드 밸런싱 우수
  • 분할 키 설정이 필요 없어 간편

단점 & 유의사항

  • 특정 열 기준 검색 시 데이터가 모든 노드를 스캔해야 함 → 네트워크 오버헤드 증가
  • 조인·집계 시 분산 키 미지정 상태이므로 셔플(데이터 재분배) 발생

사용 시나리오

  • 로딩 단계에서 빠른 데이터 적재가 최우선
  • 분석 시 특정 키별 조회가 아닌 전체 테이블 집계 작업 위주

구현 로직(예시)

CREATE TABLE dbo.Sales_RR
(
    SalesID   INT,
    Product   NVARCHAR(50),
    Amount    DECIMAL(10,2)
)
WITH
(
    DISTRIBUTION = ROUND_ROBIN
);
반응형

2. Hash 분산

개념
특정 분산 키 열(또는 복합 키)의 해시값을 계산하여 노드에 할당하는 방식입니다.

  • 같은 키값은 항상 동일 노드에 위치 → 관련 레코드 로컬 처리 가능

사용도 & 장점

  • 키 기반 조인·집계 시 데이터 이동 최소화 → 쿼리 성능 향상
  • 대규모 테이블 간 조인 작업 빈도 높은 환경에 적합

단점 & 유의사항

  • 분산 키 선택이 매우 중요. 편향된 키 선택 시 특정 노드에 데이터 쏠림(“스키드”)
  • 분산 키 변경 불가(테이블 생성 시 결정)

사용 시나리오

  • 고객ID, 주문ID 등 널리 사용되는 조건문에 기반한 조인·필터링 빈번
  • 월별·지역별 분석 등 그룹핑이 많을 때

구현 로직(예시)

CREATE TABLE dbo.Sales_Hash
(
    SalesID   INT,
    CustomerID INT,
    Amount    DECIMAL(10,2)
)
WITH
(
    DISTRIBUTION = HASH(CustomerID)
);

3. Replicate 분산

개념
작은 테이블 전체를 모든 노드에 복제(Replication)해 두는 방식입니다.

  • 모든 노드가 테이블을 로컬로 보유 → 완전 로컬 조인 가능

사용도 & 장점

  • 조인 대상 테이블이 소규모인 경우 네트워크 없이 즉시 조인
  • 복제본 동기화 비용은 적절히 관리됨

단점 & 유의사항

  • 테이블 크기가 크면 복제·동기화 오버헤드 급증
  • 저장 공간 효율성 저하

사용 시나리오

  • 참조 테이블(상품목록, 지역코드, 설정값 등)
  • 드물게 변경되며 조인 빈도가 높은 소규모 테이블

구현 로직(예시)

CREATE TABLE dbo.Dim_Product
(
    ProductID INT,
    Name      NVARCHAR(100),
    Category  NVARCHAR(50)
)
WITH
(
    DISTRIBUTION = REPLICATE
);

분산 방식 선택의 중요성 및 활용

데이터 분산 전략은 쿼리 성능, 네트워크 사용량, 저장 공간 효율을 결정합니다.

  • 사용자·개발자 관점: 적절한 분산 키 선택 및 방식 설정을 통해 대규모 데이터 처리 속도를 획기적으로 개선하고 인프라 비용을 절감할 수 있습니다.
  • 중요성: 잘못된 분산 방식은 병렬 연산 효율을 떨어뜨려 쿼리 응답 시간을 수십 배까지 증가시킬 수 있습니다.

선택 가이드

  1. 로딩 속도 최우선 → Round Robin
  2. 키 기반 조인·필터링 빈번 → Hash (분산 키 신중히 선정)
  3. 작은 참조 테이블 조인 자주 발생 → Replicate

각 테이블의 특성과 업무 패턴을 고려해 위 분산 방식을 적절히 조합·운영하는 것이 대규모 병렬 분석 환경에서 핵심 성능 튜닝 포인트입니다.

반응형