가장일반적으로 쓰이는 파티션, 데이터많이누적되는 테이블에서 기준이 모호할때 날짜를 기준으로 파티션, 파티션 키컬럼을 정하기 매우쉬운장점.
LESS THAN안의 값을 포함하지않음
P_DEFAULT파티션은 파티션을 추가해야하는데 못했을때 에러방지.
파티션 키 컬럼의 값이 범위를 가지고 있다.
아래예제에서 주문일자(ORD_DT)컬럼은 월단위로 나뉘어 저장, 주문일자달라도 월 데이터는 물리적으로 하나의 파티션에 저장
만약 1월15~25일까지 데이터를 SQL문으로 조회한다면 1월파티션만 읽어 집합을 만들 수있음.
CREATE TABLE ORD_RANGE(
ORD_NO NUMBER(1) NOT NULL
,ORD_DT VARCHAR2(8) NOT NULL
,...
)
PARTITION BY RANGE(ORD_DT)
(
PARTITION P201201 VALUES LESS THAN('201202')
,PARTITION P201202 VALUES LESS THAN('201203')
, PARTITION P_DEFAULT VALUE LESS THAN (MAXVALUE)
)
CREATE TABLE BILL_LIST (
BILL NO NUMBER(10) NOT NULL
, BILL_YM VARCHAR2(6) NOT NULL /*청구년월*/
, ...
)
PARTITION BY LIST (BILL_YM)
(
PARTITION P201201 VALUES('201201')
, PARTITION P201202 VALUES('201202')
...
, PARTITION P_DEFAULT VALUES (DEFAULT)
)
CREATE TABLE 판매도서LIST(
도서번호 NUMBER(10) NOT NULL
, 도서카테고리 VARCHAR2(6) NOT NULL
, 판매자ID VARCHAR2(10)
, ....
)
PARTITION BY LIST (도서카테고리)
(
PARTITION P카테고리01 VALUES('소설','문학')
,PARTITION P_카테고리02 VALUES('경제','경영','재테크')
,PARTITION P_DEFAULT VALUES (DEFAULT)
)
CREATE TABLE ORD_HASH(
ORD_NO NUMBER(10) NOT NULL
,ORD DT VARCHAR2(8)
,...
)
PARTITION BY HASH (ORD_NO) PARTITIONS 8;