반응형

오라클에서 제공하는 테이블 압축 기능

  • 저장 공간을 절약하고 I/O 성능을 향상시키기 위해 데이터를 압축하는 방법으로 
  • 그 중 기본 테이블 압축(Basic Table Compression)과
  • 고급 행 압축(Advanced Row Compression, Advanced Compression)이라는

두 가지 주요 압축 기술이 있음.


■ 기본 테이블 압축 (Basic Table Compression)

  • 개요: 기본 테이블 압축은 오라클 9i부터 도입된 기능으로, 데이터를 읽기 전용(혹은 거의 읽기 전용) 상태로 사용할 때 주로 사용.

  • 동작 방식: 기본 테이블 압축은 대량의 데이터를 한 번에 로드하거나, **직접 경로 삽입(Direct Path Insert)**을 사용할 때 압축이 적용.
    • 예를 들어 INSERT /*+ APPEND */, CREATE TABLE AS SELECT (CTAS) 또는 데이터 이동 작업에서 압축.
    • 이미 삽입된 데이터에 대해서는 추가적인 압축이 이루어지지 않으며, 이후 변경(예: UPDATE, DELETE)이 발생하면 압축되지 않은 형태로 저장.
    • CREATE TABLE ... COMPRESS BASIC ...; 으로 활성화됨.
  • 장점: 주로 읽기 전용 데이터에 대해 공간 절약 효과가 크며, 데이터 압축으로 인해 디스크 I/O가 줄어들어 성능 향상에도 기여. DW 대량 로드에 적합. 블록의 연속 사용 가능 공간 최적화.

  • 단점:
    • INSERT 이후에 UPDATE와 같은 DML(데이터 조작) 작업이 자주 발생하는 경우, 압축이 해제될 수 있어 실시간 갱신이 필요한 환경에서는 적합하지 않을 수 있음.
    • 테이블이 Direct Load를 위해 압축된 경우 열 삭제 불가능.


고급 행 압축 (Advanced Row Compression)

  • 개요: 고급 행 압축(Advanced Row Compression)은 오라클 11g에서 처음 도입된 기능으로, OLTP (온라인 트랜잭션 처리) 환경에서도 효과적으로 압축을 사용할 수 있도록 설계. 이전의 기본 압축 방식과 달리 업데이트나 삽입 작업이 발생하는 경우에도 압축이 유지되도록 설계.

  • 동작 방식: 고급 행 압축은 테이블에 데이터가 삽입되거나 업데이트될 때마다 데이터가 자동으로 압축. 이는 OLTP 환경에서 효율적으로 사용할 수 있도록 설계된 것으로, 지속적으로 압축이 적용.
    • 일반적인 DML 작업(INSERT, UPDATE, DELETE)이 수행되는 동안에도 압축된 형태로 데이터를 유지할 수 있으며, 기존의 기본 압축에 비해 더 높은 유연성과 효율성을 제공.
    • CREATE TABLE .. ROW STORE COMPRESS ADVANCED ...;로 활성화.
    • OLTP에 최적화.
  • 장점:
    • 읽기와 쓰기가 모두 빈번한 환경에서도 압축 상태를 유지. 이를 통해 I/O 부하를 줄이고, 저장 공간을 효율적으로 사용할 수 있음.
    • 전체 힙 구성 테이블이나 파티션 테이블, 중첩 테이블의 저장 영역에 테이블 압축 지정 가능.
  • 단점:
    • 고급 압축 기능은 오라클의 고급 압축 라이선스가 필요하며, 기본 압축보다 약간의 추가적인 CPU 자원을 사용.
    • 열수가 255개 보다 많은 경우 기본, 고급 모두 압축 불가.

https://www.rittmanmead.com/blog/2008/09/testing-advanced-oltp-compression-in-oracle-11g/

 

■ 차이점 비교

특징 기본 테이블 압축 (Basic Table Compression) 고급 행 압축 (Advanced Row Compression)
도입 버전 오라클 9i 오라클 11g
적용 대상 대량의 읽기 전용 데이터 OLTP 및 갱신이 빈번한 데이터
DML 작업 업데이트 시 압축 해제 업데이트에도 압축 유지
사용 목적 읽기 전용 또는 거의 변경되지 않는 데이터 읽기와 쓰기가 모두 빈번한 환경
라이선스 요구 사항 없음 (기본 기능) 오라클 Advanced Compression 옵션 필요
성능 주로 읽기 성능 향상 읽기 및 쓰기 성능 모두 향상


■ Compression Advisor 사용

  • 객체를 분석하여 서로 다른 압축 방법의 공간 절약 예상치를 제공.
  • 응용 프로그램의 올바른 압축 레벨을 결정하는 데 도움.
  • 다양한 압축 전략을 제시.
    • 특정 데이터 집합에 적합한 압축 알고리즘을 선택.
    • 압축률이 높아지도록 특정 열을 정렬.
    • 서로 다른 압축 알고리즘 간의 장단점을 제안.
  • OLTP 압축(Enterprise Manager 사용)에 유효.
반응형

+ Recent posts