MSSQL에서 테이블압축시 페이지단위와 로우단위 어느게 더 유리한가?

By | 2025-07-16

✅ 1. Row Compression (로우 압축)

🔹 작동 방식

  • 고정 길이 데이터를 가변 길이로 저장하여 공간 절약
  • 예: CHAR(100) → 실제 값이 10자일 경우, 10자만 저장
  • NULL 및 0 값을 더 간단하게 저장

🔹 장점

  • CPU 부하가 적음
  • 성능에 거의 영향을 주지 않음
  • 읽기/쓰기 속도 저하가 크지 않음

🔹 단점

  • 압축률이 낮음 (보통 10~25%)

✅ 2. Page Compression (페이지 압축)

🔹 작동 방식

  • Row 압축 + 추가로 패턴 인식(Dictionary encoding, Prefix compression 등) 을 통해 중복 제거
  • 하나의 페이지 내에서 데이터의 공통 부분을 찾아 압축

🔹 장점

  • 압축률이 높음 (보통 30~70%)
  • 저장 공간 크게 절약
  • IO 줄어들어 읽기 성능이 향상되는 경우 있음

🔹 단점

  • CPU 부하 큼 (읽기/쓰기/압축 시 모두)
  • INSERT/UPDATE가 빈번한 경우 성능 저하 가능

🆚 언제 무엇을 선택할까?

상황권장 압축 방식
읽기 위주의 테이블 (OLAP, DW)✅ Page 압축
자주 갱신되거나 쓰기가 많은 테이블 (OLTP)✅ Row 압축 또는 압축 없음
공간 절약이 최우선✅ Page 압축
성능이 최우선✅ Row 압축 또는 압축 없음
테스트 용도로 점진적 적용✅ Row 압축부터 시도 후 분석

🎯 실전 팁

  • sp_estimate_data_compression_savings 시스템 저장 프로시저를 사용하면 Row, Page 압축을 적용했을 때 예상되는 공간 절약량을 확인할 수 있습니다.
EXEC sp_estimate_data_compression_savings 
    @schema_name = 'dbo', 
    @object_name = 'YourTableName',
    @index_id = NULL, 
    @partition_number = NULL, 
    @data_compression = 'PAGE';

🔚 결론

  • 읽기 위주, 대량 데이터 → Page 압축 유리
  • 쓰기/갱신 많은 OLTP 테이블 → Row 압축 또는 압축 없이 운영
  • 테스트로 압축 이점 확인 후 적용이 가장 안전

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다