파티션(Partition)
파티셔닝은 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 것을 말한다.
테이블을 파티셔닝하면 파티션 키에 따라 물리적으로는 별도의 세그먼트에 데이터를 저장하며, 인덱스도 마찬가지다.
- 관리적 측면: 파티션 단위 백업, 추가, 삭제 변경
- 성능적 측면: 파티션 단위 조회 및 DML 수행, 경합 및 부하 분산
테이블 파티션
- Range 파티션: 파티션 키 값의 범위를 이용하여 파티셔닝
- Hash 파티션: 파티션 키값을 해쉬처리하여 파티셔닝
- List 파티션: 파티션 키를 지정하여 파티셔닝
- Composite 파티션: 주파티션, 서브파티션을 지정하여 복합적으로 파티셔닝
CREATE TABLE sales ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE , channel_id CHAR(1) , promo_id NUMBER(6) , quantity_sold NUMBER(3) , amount_sold NUMBER(10,2) ) STORAGE (INITIAL 100K NEXT 50K) LOGGING PARTITION BY RANGE (time_id) ( PARTITION sales_q1_2006 VALUES LESS THAN (TO_DATE('01-APR-2006','dd-MON-yyyy')) TABLESPACE tsa STORAGE (INITIAL 20K NEXT 10K) , PARTITION sales_q2_2006 VALUES LESS THAN (TO_DATE('01-JUL-2006','dd-MON-yyyy')) TABLESPACE tsb , PARTITION sales_q3_2006 VALUES LESS THAN (TO_DATE('01-OCT-2006','dd-MON-yyyy')) TABLESPACE tsc , PARTITION sales_q4_2006 VALUES LESS THAN (TO_DATE('01-JAN-2007','dd-MON-yyyy')) TABLESPACE tsd ) ENABLE ROW MOVEMENT;
인덱스 파티션
- Global, local partitioned 인덱스
n Global: 테이블의 파티션 구조와 별도로 파티셔닝
n Local: 테이블의 파티션 구조와 동일하게 파티셔닝
- Prefixed, Non-Prefixed 인덱스
n Prefixed: 테이블의 파티션키와 인덱스의 파티션키가 동일
n Non-Prefixed: 테이블의 파티션키와 인덱스의 파티션키가 다름
http://www.gurubee.net/lecture/1906
http://docs.oracle.com/cd/E18283_01/server.112/e16541/part_admin001.htm
반응형
'데이타베이스' 카테고리의 다른 글
[오라클] 오라클 11g Expressing 버전 설치후 시작하기 (0) | 2015.08.21 |
---|---|
[MySQL] 시작시간과 종료시간의 차이 비교 함수, TIMEDIFF (0) | 2015.08.05 |
[ORACLE] Index Scan 종류 (0) | 2015.08.04 |
[ORACLE] 인덱스 (0) | 2015.08.04 |
[SQL] 조인 (0) | 2015.08.03 |