Oracle 표 압축 (표 압축) 기술 소개

25248 단어 OracleDBA 관련
Oracle 표 압축 (표 압축) 소개
1. 공식 문서 에 따 르 면 데이터베이스 크기 가 커지 면 테이블 압축 을 사용 하 는 것 이 좋 습 니 다. 압축 은 디스크 공간 을 절약 하고 데이터베이스 버퍼 캐 시 에서 메모리 사용 을 줄 이 며 읽 는 동안 쿼 리 실행 속 도 를 크게 높 일 수 있 습 니 다. 압축 은 데이터 로드 와 DML 을 위 한 CPU 오 버 헤드 비용 이 듭 니 다. this cost might be offset by reduced I/O requirements
데이터 베이스 가 계속 증가 함 에 따라 표 압축 을 고려 할 수 있다.압축 은 디스크 공간 을 절약 하고 데이터베이스 buffer cache 메모리 사용 을 줄 이 며 조 회 를 가속 화 할 수 있 습 니 다.압축 은 데이터 마 운 트 와 DML 작업 에 일정한 CPU 소모 가 있 습 니 다.그러나 이런 소 모 는 I / O 의 감 소 를 상쇄 할 수 있다.
Table compression is completely transparent to applications. It is useful in decision support systems (DSS), online transaction processing (OLTP) systems, and archival systems.
표 압축 은 응용 프로그램 에 완전히 투명 합 니 다.DSS 시스템, 온라인 사무 처리, 압축 파일 시스템 에 모두 유용 하 다.
You can specify compression for a tablespace, a table, or a partition. If specified at the tablespace level, then all tables created in that tablespace are compressed by default.
표 공간, 표 또는 파 티 션 에 압축 을 지정 할 수 있 습 니 다.표 공간 기본 으로 지정 하면 이 표 공간의 모든 표 가 생 성 된 후 기본적으로 압축 을 사용 합 니 다.
Compression can occur while data is being inserted, updated, or bulk loaded into a table. Operations that permit compression include: 압축 은 데이터 삽입, 업데이트 또는 일괄 불 러 올 수 있 습 니 다.압축 표 는 다음 작업 을 허용 합 니 다: Single - row or array inserts and updates 한 줄 또는 여러 줄 삽입 및 업데이트
다음 direct - path INSERT 메 서 드: 직접 경로 삽입 방법:
Direct path SQL*Loader 1)CREATE TABLE AS SELECT statements 2)Parallel INSERT statements 3)INSERT statements with an APPEND or APPEND_VALUES hint
지금까지 Oracle 데이터 베 이 스 는 모두 4 가지 표 압축 기술 이 있다. 1) Basic compression 2) OLTP compression 3) Warehouse compression (Hybrid Columnar Compression) 4) Archive compression (Hybrid Columnar Compression)
여기 서 나 는 주로 기본 압축 을 소개 한다.
2. 기본 압축 특징: 1) 기본 압축 을 사용 하고 데이터 가 직접 경로 로 기록 (direct - path insert and updated) 을 삽입 하거나 업데이트 할 때 만 압축 이 발생 합 니 다.또한 유선 데이터 형식 과 SQL 작업 을 지원 합 니 다.
3. 기본 압축 을 어떻게 사용 합 니까?1) create table 문 구 를 통 해 copress 조건 을 지정 합 니 다.2) alter table 을 통 해.. compress;기 존 테이블 에 압축 사용 하기;3) alter table.. nocompress 를 통 해;시계 압축 을 사용 하지 않 습 니 다.
4. 기본 압축 에 관 한 예 4.1 압축 표 만 들 기
CREATE TABLE emp_comp compress
AS
SELECT * FROM emp
WHERE 1=2;

4.2 데이터 사전 을 통 해 압축 표 상 태 를 본다.
SCOTT@orcl> SELECT table_name, compression, compress_for
  2  FROM user_tables
  3  WHERE table_name='EMP_COMP';

TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
EMP_COMP                       ENABLED  BASIC

4.3 비 직접 경 로 를 통 해 데 이 터 를 삽입 합 니 다.
SCOTT@orcl> INSERT INTO emp_comp
  2  SELECT * FROM emp;

   16 。

SCOTT@orcl> commit;

--     
SYS@orcl> exec show_space('EMP_COMP','SCOTT');
Unformatted Blocks  ....................               0
FS1 Blocks (0-25)   ....................               0
FS2 Blocks (25-50)  ....................               0
FS3 Blocks (50-75)  ....................               0
FS4 Blocks (75-100) ....................               5
Full Blocks         ....................               0
Total Blocks ...........................               8
Total Bytes  ...........................          65,536
Total MBytes ...........................               0
Unused Blocks...........................               0
Unused Bytes ...........................               0
Last Used Ext FileId....................               4
Last Used Ext BlockId...................          14,304
Last Used Block.........................               8

--  emp   
SYS@orcl> exec show_space('EMP','SCOTT');
Unformatted Blocks  ....................               0
FS1 Blocks (0-25)   ....................               0
FS2 Blocks (25-50)  ....................               0
FS3 Blocks (50-75)  ....................               0
FS4 Blocks (75-100) ....................               5
Full Blocks         ....................               0
Total Blocks ...........................               8
Total Bytes  ...........................          65,536
Total MBytes ...........................               0
Unused Blocks...........................               0
Unused Bytes ...........................               0
Last Used Ext FileId....................               4
Last Used Ext BlockId...................             144
Last Used Block.........................               8

--    EMP      ,emp_comp     。

주: show 에 대하 여space 프로 세 스 의 용법, 참고 하 세 요 [http://blog.csdn.net/indexman/article/details/47207987】
4.4 직접 경 로 를 통 해 데 이 터 를 삽입 합 니 다.
drop table emp_comp purge;

CREATE TABLE emp_comp compress
AS
SELECT * FROM emp
WHERE 1=2;


insert /*+ append */ into emp_comp
select *
from emp;

--     
SYS@orcl> exec show_space('EMP_COMP','SCOTT');
Unformatted Blocks  ....................               0
FS1 Blocks (0-25)   ....................               0
FS2 Blocks (25-50)  ....................               0
FS3 Blocks (50-75)  ....................               0
FS4 Blocks (75-100) ....................               0
Full Blocks         ....................               1
Total Blocks ...........................               8
Total Bytes  ...........................          65,536
Total MBytes ...........................               0
Unused Blocks...........................               4
Unused Bytes ...........................          32,768
Last Used Ext FileId....................               4
Last Used Ext BlockId...................          14,304
Last Used Block.........................               4

--      4    

4.5 시계 압축 사용 안 함
SCOTT@orcl> alter table emp_comp NOCOMPRESS;

    。

SCOTT@orcl> SELECT table_name, compression, compress_for
  2  FROM user_tables
  3  WHERE table_name='EMP_COMP'
  4  ;

TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
EMP_COMP                       DISABLED

4.6 테이블 압축 사용 하기
SCOTT@orcl> alter table emp_comp COMPRESS;

    。

SCOTT@orcl> SELECT table_name, compression, compress_for
  2  FROM user_tables
  3  WHERE table_name='EMP_COMP';

TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
EMP_COMP                       ENABLED  BASIC

5. 마지막 으로 다음 표 압축 의 몇 가지 사용 제한 을 살 펴 보 겠 습 니 다. 1) 기본 압축 에 대해 압축 표 에 기본 값 을 가 진 열 을 추가 할 수 없습니다.
SCOTT@orcl> alter table emp_comp add remark varchar2(200) default 'null';
alter table emp_comp add remark varchar2(200) default 'null'
                         *
  1      :
ORA-39726:            /     

2) 압축 표 의 열 을 삭제 할 수 없습니다:
SCOTT@orcl> alter table emp_comp drop column ename;
alter table emp_comp drop column ename
                                 *
  1      :
ORA-39726:            /     

3) 표 압축 은 선분 수축 (Online segment shrink) 지원 되 지 않 습 니 다. 4) SecureFiles large objects 지원 되 지 않 습 니 다. 5) 압축 표 생 성 시 기본적으로 PCT 를 설정 합 니 다.FREE 는 0;니 가 직접 지정 하지 않 는 한

좋은 웹페이지 즐겨찾기