✅ 요점 먼저:
구분 | 초기부터 압축 | 보관 전 압축 |
---|---|---|
✅ 저장공간 절약 | 빠름 (즉시) | 느림 (나중에) |
✅ 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 성능이 중요한 경우
🛠 실무 팁:
- 파티션 스위칭과 압축을 병행
- 새 데이터는 압축 없이
스테이징 테이블
에 INSERT - 일정 기간 후 파티션 스위칭 + 압축 수행
- 새 데이터는 압축 없이
- 자동화 스크립트 활용
- 매월 말마다
지난달 파티션
을 압축하는 작업 예약
- 매월 말마다
🧾 결론
- INSERT 중심 테이블은 초기부터 압축하는 것은 비효율적
- 파티션 단위 보관 전 압축이 훨씬 효율적이고 성능에 안전함
- 특히
PAGE 압축
은 쓰기 부하 줄인 후 적용하는 것이 실무적으로 정석