파티셔닝이 되어있는 테이블에 주로 insert만 발생하는 테이블을 처음부터 압축하는 경우와 보관전에 압축하는 경우 어떤 경우가 더 유리한가?

By | 2025-07-16

✅ 요점 먼저:

구분초기부터 압축보관 전 압축
✅ 저장공간 절약빠름 (즉시)느림 (나중에)
✅ CPU 사용량증가증가 (한 번에)
✅ INSERT 성능느려짐 (특히 Page 압축)빠름
✅ 관리 복잡도단순약간 복잡
✅ 실무 적합도 (쓰기 위주 테이블)❌ 적합하지 않음✅ 더 유리함

🧠 상세 분석:

📌 1. 처음부터 압축 (초기 압축)

  • INSERT 시마다 압축 작업이 함께 발생 → 특히 PAGE 압축은 CPU 자원을 많이 사용
  • 데이터가 계속 유입되는 동안 성능 저하 가능성
  • ROW 압축은 비교적 성능 영향이 적지만, 압축률도 낮음
  • 쓰기 성능이 중요한 OLTP/실시간 수집 테이블에 부적합

언제 고려하나?

  • INSERT 빈도가 낮거나,
  • 저장 공간 절약이 최우선,
  • 쓰기 성능보다 비용 절감이 더 중요한 경우

📌 2. 보관 전에 압축 (나중 압축)

  • 실시간으로는 압축을 하지 않고, 일정 기간 후 보관 파티션만 압축
  • 예: 1개월치 데이터를 매일 INSERT → 지난달 파티션을 PAGE 압축
ALTER TABLE YourTableName 
REBUILD PARTITION = N 
WITH (DATA_COMPRESSION = PAGE);
  • INSERT/UPDATE 성능에 영향 없이 운영 가능
  • 파티션 단위로 압축이 가능하므로 효율적이고 관리 용이
  • 디스크 IO 감소, 백업 속도 개선, 공간 절약

언제 적합하나?

  • 파티셔닝이 잘 되어 있고,
  • 일정 기간 후 데이터 변경이 없는 경우 (보관 전용),
  • INSERT 성능이 중요한 경우

🛠 실무 팁:

  1. 파티션 스위칭과 압축을 병행
    • 새 데이터는 압축 없이 스테이징 테이블에 INSERT
    • 일정 기간 후 파티션 스위칭 + 압축 수행
  2. 자동화 스크립트 활용
    • 매월 말마다 지난달 파티션을 압축하는 작업 예약

🧾 결론

  • INSERT 중심 테이블초기부터 압축하는 것은 비효율적
  • 파티션 단위 보관 전 압축이 훨씬 효율적이고 성능에 안전함
  • 특히 PAGE 압축쓰기 부하 줄인 후 적용하는 것이 실무적으로 정석

답글 남기기

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