본문 바로가기
데이타베이스

[ORACLE] 파티션(Partiton)

by hs_seo 2015. 8. 4.

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

 

반응형