by 구루비 COMPOSITE PARTITION PARTITION TABLE RANGE-HASH PARTITION 파티션 [2006.06.18]
Composite Partition 은 partition 의 partitioning 입니다.
Range-Hash Partitioning 과 Range-List Partitioning으로 구분 됩니다.
- Range 방식을 사용하여 데이터를 Partitioning하고 각각의 Partition 내에서 Hash 방식을 이용하여 Sub-Partitioning을 하는 방법 입니다.
- Range와 Hash 두 Partitioning 방식의 장점을 이용하여 만든 개념 입니다.
- 년, 월, 일을 기준으로 데이터를 Range Partition을 하고, 2차로 sales_no 값을 Hash Partition에 의해 분리하여 데이터를 저장 합니다.
- 실제 데이터는 년, 월, 일로 분리된 후 Hash 함수에 의해 나누어져 저장 됩니다.
- 어떤 분류에 속하는 지만 알 수 있을 뿐 실제 저장되어 있는 Segment는 개발자나 DBA가 알 수 없습니다
SQL> 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) );
아래와 같이 데이터를 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을 추가한 예제 입니다.
SQL> 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);
- 강좌 URL : http://www.gurubee.net/lecture/1912
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.