■ 파티션 테이블이란...
테이블을 컬럼별로 쪼개어 각각의 물리적 테이블스페이스로 분산
■ 파티션 테이블 장점
- 데이터 액세스시 범위를 줄여 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
- 해쉬 값에 따라 저장될 테이블스페이스가 정해진다.