11g에 추가된 파티션 유형
Reference 파티셔닝
- 상품 테이블을 상품대분류 기준으로 리스트 파티셔닝하고, 일별상품거래 테이블도 부모 테이블인 상품과 똑 같은 방식과 기준으로 파티셔닝
-
이럴 때 10g 까지는 상품에 있는 상품대분류 컬럼을 일별 상품거래 테이블에 반정규화
-
11g에서 부모 테이블 파티션 키를 이용해 자식 테이블을 파티셔닝하는 기능
Create table 상품 {
상품번호 number NOT NULL PRIMARY KEY
, 상품명 varchar2(50) not null
, 현재가격 number not null
, 상품대분류 varchar2(4) not null
, 등록일시 date not null
)
Partition by list(상품대분류) (
Partition p1 values ('의류')
,partition p2 values ('식품')
,partition p3 values ('가전')
,partition 4 values ('컴퓨터')
);
create table 일별상품거래 (
상품번호 number NOT NULL, 거래일자 varchar2(8)
, 판매가격 number
, 판매수량 number
, 판매금액 number
, constraint 일별상품거래_fk foreign key(상품번호) references 상품
)
partition by reference (일별상품거래_fk);
Interval 파티셔닝
- 11g 부터는 Range 파티션을 생성할 대 아래와 같이 interval, 기준을 정의함으로써 정해진 간격으로 파티션이 자동 추가되도록 할 수 있다.
- 테이블을 일단위로 파티셔닝 했을때 유용하다.
create table 주문일자 (주문번호 number, 주문일시 date, ... )
partition by range(주문일시) INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
, partition p200907 values less than(to_date('2009/08/01', 'yyyy/mm/dd'))
, partition p200908 values less than(to_date('2009/09/01', 'yyyy/mm/dd'))
, partition p200909 values less than(to_date('2009/10/01', 'yyyy/mm/dd'))
, partition p200910 values less than(to_date('2009/11/01', 'yyyy/mm/dd'))
);
create table 고객 (고객번호 number, 고객명 varchar2(20), ... )
partition by range(고객번호) INTERVAL (100000)
( partition p_cust1 values less than ( 100001 )
, partition p_cust2 values less than ( 200001 )
, partition p_cust3 values less than ( 300001 )
) ;
'ORACLE > 11G' 카테고리의 다른 글
11.2.0.N 이전 버전에서 최신 11.2.0.N 패치셋으로 out-of-place 수동 업그레이드에 대한 전체 확인 목록. (문서 ID 1608337.1) (2) | 2014.07.02 |
---|---|
11g: 스케줄러 유지 관리 작업 또는 자동작업 (문서 ID 1534329.1) (0) | 2014.06.14 |
ADR (0) | 2013.05.19 |
11g 데이타베이스 에러수집방법 (0) | 2012.05.11 |
기준선 및 개선된 계획 (0) | 2009.08.25 |