[Oracle] Compress

2024. 2. 29. 17:37

● 서버 스토리지 부족 시 TBL 압축을 위해 Compress 옵션 사용 (단, DML이 잦으면 역효과일 수 있음)

  Relation Data 처리를 위한 알고리즘으로 DB Block 내 다수의 column의 중복된 값을 제거하여 compression을 수행

  새로운 data를 bulk insert, bulk load 또는 insert, update 시 compression 사용 가능

 

  Compress된 block은 compression과 관련된 meta data를 symbol table에 저장

                 ㄴ uncompressed table과 가장 큰 차이

                                                                       ㄴ symbol table : block의 상단에 위치

 

 

※ 사용 전 테이블의 속성을 파악하여 DML 이력 확인 권고

SQL> SELECT INSERTS, UPDATES, DELETES FROM DBA_TAB_MODIFICATIONS WHERE TABLE_NAME = 'TEST';

   INSERTS    UPDATES    DELETES
---------- ---------- ----------
         0      12657          0

 

 

 

Basic Compression

Direct path I/O 로 생성된 block만 압축함

하나의 segment에 여러 형태의 block이 혼재할 수 있음

                                 ㄴ Compressed block (Direct Path I/O)

                                      Uncompressed block (Conventional Path I/O)

 

Command

ALTER TABLE TEST_NOCOMP MOVE NOCOMPRESS;
ALTER TABLE TEST_BASIC MOVE COMPRESS BASIC;
ALTER TABLE TEST_OLTP MOVE COMPRESS FOR OLTP;

MOVE : 이전에 저장되어 있던 DATA들도 압축

MOVE 생략 시 이후에 들어오는 DATA들에 한하여 압축

SQL> INSERT /*+append*/ INTO ... VALUES ...
SQL> COMMIT;

 

 

 

 

OLTP Compression

Online Transaction Processing

 = 그냥 트랜잭션

'Database > Oracle' 카테고리의 다른 글

[Oracle] Transaction과 Record  (0) 2024.02.21
RMAN  (0) 2023.11.12
[Oracle] 자주 쓰는 명령어  (0) 2023.11.10
[Oracle] 관리자 계정(system, sys) 비밀번호 변경  (0) 2023.03.16
[Oracle] 이전 명령어 방향키로 출력  (0) 2023.03.15

+ Recent posts