본문 바로가기

IT관련

오라클 해시파티션(Hash Partition)에서 Split 가능한가?

파티션 Split 이란, 하나의 파티션을 여러개로 쪼개는 것을 말합니다.

 

해시파티션은 해시 함수에 의해 데이터를 일정하게 분산시켜놓은 상태입니다.

이런 해시파티션에서 파티션 Split 을 생각하고 있다면, 그건 파티션 갯수를 늘리고 싶은 경우입니다.

 

파티션 갯수를 늘리고 싶으면 그냥 Partition Add 를 하면 됩니다. ^^

 

     참고 => Hash 파티션에서 Add / Drop

 

일반적으로 그냥 단일 Hash Partition 테이블을 Split 할 수는 없습니다.

하지만, 복합파티션(Composite Partition)의 경우는 가능합니다.

 

 

아래와 같이 Range-Hash 파티션이 있을 때,

 


SQL>
create table SALES (
  sales_no       number,
  sale_year      number,
  sale_month     number,
  sale_day       number,
  customer_name  varchar2(30),
  birth_date     date,
  price          number,
  state          varchar2(2)
)
partition by range (birth_date)
subpartition by hash (sales_no) subpartition template
(
  subpartition S1, 
  subpartition S2,
  subpartition S3,
  subpartition S4
)
(
  partition SALES_P1 values less than (to_date('1975/01/01','yyyy/mm/dd')),
  partition SALES_P2 values less than (to_date('1978/01/01','yyyy/mm/dd')),
  partition SALES_P3 values less than (maxvalue)
);

 

 

at 키워드를 사용해서 Range-Hash 파티션을 분할할 수 있습니다.

결국 Hash 파티션을 Split 한다기 보다는 그 상위에 있는 Range 파티션을 Split 하는 의미 입니다.

 

 

이와 같이 Range-Hash 파티션을 Split 할때, 서브해시파티션의 갯수를 지정할 수 있습니다.

아래는 원래 4개로 되어 있던 서브파티션 갯수를 Split 하면서 3개-3개씩으로 분할한 경우입니다.

 

 

▶ 오라클 파티션 종합 페이지 바로가기