5.5. Composite Partition 이란


- Composite Partition 은 partition 의 partitioning 입니다.
- Range-Hash PartitioningRange-List Partitioning으로 구분 됩니다.



5.5.1 Composite Range-Hash Partitioning


 - Range 방식을 사용하여 데이터를 Partitioning하고 각각의 Partition 내에서 Hash 방식을 이용하여 Sub-Partitioning을 하는 방법 입니다.
 
 - Range와 Hash 두 Partitioning 방식의 장점을 이용하여 만든 개념 입니다.

 
 ① 파티션 테이블 생성

CREATE TABLE sales_range_hash
    (sales_no NUMBER,
     sale_year INT NOT NULL,
     sale_month INT NOT NULL,
     sale_day INT NOT NULL,
     customer_name  VARCHAR2(30),
     price NUMBER)
       PARTITION BY RANGE (sale_year, sale_month, sale_day)
       SUBPARTITION BY HASH(sales_no)
       SUBPARTITIONS 4
       STORE IN (ASSM_TBS1, ASSM_TBS2, ASSM_TBS3, ASSM_TBS4)
       (PARTITION sales_q1 VALUES LESS THAN (2005, 01, 01),
        PARTITION sales_q2 VALUES LESS THAN (2005, 07, 01),
        PARTITION sales_q3 VALUES LESS THAN (2006, 01, 01),
        PARTITION sales_q4 VALUES LESS THAN (2006, 07, 01) );
 


 - 년, 월, 일을 기준으로 데이터를 Range Partition을 하고, 2차로 sales_no 값을 Hash Partition에 의해 분리
하여 데이터를 저장 합니다.
 
 - 실제 데이터는 년, 월, 일로 분리된 후 Hash 함수에 의해 나누어져 저장 됩니다.
 
 - 어떤 분류에 속하는 지만 알 수 있을 뿐 실제 저장되어 있는 Segment는 개발자나 DBA가 알 수 없습니다



데이터 조작  

아래와 같이 데이터를 INSERT 하고 저장된 데이터를 확인해 봅니다.



INSERT INTO sales_range_hash VALUES(1, 2004, 06, 12, ’scott’, 2500);
INSERT INTO sales_range_hash VALUES(2, 2005, 06, 17, ’jones’, 4300);
INSERT INTO sales_range_hash VALUES(3, 2005, 12, 12, ’miller’, 1200);
INSERT INTO sales_range_hash VALUES(4, 2006, 06, 22, ’ford’, 5200);
INSERT INTO sales_range_hash VALUES(5, 2005, 01, 01, ’lion’, 2200);
COMMIT;
 


데이터가 아래와 같이 범위 분할 방식으로 나누어진 것을 확인 할 수 있습니다.


SELECT sales_no from sales_range_hash PARTITION (sales_q1); --> 1   
SELECT sales_no from sales_range_hash PARTITION (sales_q2); --> 2, 5
SELECT sales_no from sales_range_hash PARTITION (sales_q3); --> 3   
SELECT sales_no from sales_range_hash PARTITION (sales_q4); --> 4
 



파티션 추가
 
sales_range_hash 테이블에 sales_q5 Range-Hash Partition을 추가한 예제 입니다.



ALTER TABLE sales_range_hash ADD PARTITION sales_q5
VALUES LESS THAN (MAXVALUE, MAXVALUE, MAXVALUE)
SUBPARTITIONS 4
STORE IN (ASSM_TBS1, ASSM_TBS2, ASSM_TBS3, ASSM_TBS4);
 



좀 더 자세한 파티션 관리는 오라클 문서의 파티션 관리 표를 참고 하시기 바랍니다.
http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10739/partiti.htm#i1007638




  ================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================

'DB > Oracle 10g 강좌' 카테고리의 다른 글

Partition Index  (0) 2009.10.31
Composite Range-List Partitioning  (0) 2009.10.31
List Partition  (0) 2009.10.31
Hash Partition  (0) 2009.10.31
Range Partition  (0) 2009.10.31
Posted by 야동우
,