파티션(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 |
