Oracle Partition Table 설명

■ 파티션 테이블이란...

테이블을 컬럼별로 쪼개어 각각의 물리적 테이블스페이스로 분산



■ 파티션 테이블 장점

- 데이터 액세스시 범위를 줄여 Performance 향상을 가져올 수 있음.
- 여러 분할 영역으로 관리되어 데이터 훼손 가능성이 감소 되고, I/O 성능 향상을 가져 올 수 있음.
- 각 분할 영역을 독립적으로 백업하고 복구 할 수 있음.



■ 파티션 테이블 생성 예 (Range Partition)

CREATE TABLE TBL_PARTITION_TEST1
(
 COLUMN_1 NUMBER NOT NULL,
 COLUMN_2 VARCHAR(30),
 COLUMN_3 INTEGER, -- PARTITION_01
 COLUMN_4 INTEGER, -- PARTITION_02
 COLUMN_5 INTEGER, -- PARTITION_03
 COLUMN_6 VARCHAR(50)
)
PARTITION BY RANGE (COLUMN_3, COLUMN_4, COLUMN_5)
(
 -- (COLUMN_3 < 2010) and (COLUMN_4 < 05) and (COLUMN_5 < 30) 이면 TS_PARTITION_TEST2에 기록
 PARTITION PARTITION_01 VALUES LESS THAN (2010, 05, 30) TABLESPACE TS_PARTITION_TEST2,

 -- (COLUMN_3 < 2011) and (COLUMN_4 < 05) and (COLUMN_5 < 30) 이면 TS_PARTITION_TEST2에 기록
 PARTITION PARTITION_02 VALUES LESS THAN (2011, 05, 30) TABLESPACE TS_PARTITION_TEST2,

 -- (COLUMN_3 < 2012) and (COLUMN_4 < 05) and (COLUMN_5 < 30) 이면 TS_PARTITION_TEST3에 기록
 PARTITION PARTITION_03 VALUES LESS THAN (2012, 05, 30) TABLESPACE TS_PARTITION_TEST3
) TABLESPACE TS_PARTITION_TEST1;

☞ 설명 :

- COLUNM_3, COLUNM_4, COLUNM_5의 값에 따라 파티셔닝을 하는 구조.
- MAXVALUE 값이 낮은 순서부터 파티션을 기술해야 한다.
- 기본 테이블스페이스는 TS_PARTITION_TEST1
- INSERT되는 값에 따라 저장될 테이블스페이스가 정해진다.
- 다음과 같이 하여 파티션을 추가할 수 있다.

ALTER TABLE TBL_PARTITION_TEST1 ADD PARTITION PARTITION_04 VALUES LESS THAN (2013, 05, 30) TABLESPACE TS_PARTITION_TEST2;



■ 파티션 테이블 생성 예 (Hash Partition)

CREATE TABLE TBL_PARTITION_TEST1
(
 COLUMN_1 NUMBER NOT NULL,
 COLUMN_2 VARCHAR(30),
 COLUMN_3 INTEGER, -- PARTITION_01
 COLUMN_4 INTEGER, -- PARTITION_02
 COLUMN_5 INTEGER, -- PARTITION_03
 COLUMN_6 VARCHAR(50)
)
PARTITION BY HASH (COLUMN_3, COLUMN_4, COLUMN_5)
(
 -- TS_PARTITION_TEST2에 기록
 PARTITION PARTITION_01 TABLESPACE TS_PARTITION_TEST2,

 -- TS_PARTITION_TEST2에 기록
 PARTITION PARTITION_02 TABLESPACE TS_PARTITION_TEST2,

 -- TS_PARTITION_TEST3에 기록
 PARTITION PARTITION_03 TABLESPACE TS_PARTITION_TEST3
) TABLESPACE TS_PARTITION_TEST1;

☞ 설명 :

- COLUNM_3, COLUNM_4, COLUNM_5을 키의 해쉬값에 따라 파티셔닝을 하는 구조.
- 각 파티션마다 고유의 해쉬값이 할당 된다.
- 성능이 향상된다.
- 기본 테이블스페이스는 TS_PARTITION_TEST1
- 해쉬 값에 따라 저장될 테이블스페이스가 정해진다.

위로 스크롤