오라클 파티션 테이블

2009. 7. 1. 11:12 from DB/ORACLE
http://www.oracleclub.com/lecture/1908
후배가 SM하다가 언놈이 로그테이블 날려먹었다고 SBSB 한후에 아는거 있냐고 해서
파티션 테이블이라는걸 처음 봤네요

일단 생성쿼리는 다른 테이블과 동일하고 마지막줄에
       PARTITION BY RANGE (sale_year, sale_month, sale_day)
      
(PARTITION sales_q1 VALUES LESS THAN (2005, 01, 01) TABLESPACE ASSM_TBS1,
       
PARTITION sales_q2 VALUES LESS THAN (2005, 07, 01) TABLESPACE ASSM_TBS2,
       
PARTITION sales_q3 VALUES LESS THAN (2006, 01, 01) TABLESPACE ASSM_TBS3,
       
PARTITION sales_q4 VALUES LESS THAN (2006, 07, 01) TABLESPACE ASSM_TBS4 );
와 같이 추가적인 정의를 적어줍니다.
range에 포함된 필드값에 따라 저장될 파티션이 정해지죠
위의경우 20050101 보다 작은값은 sales_q1에, 20050701보다 작은값은 sales_q2에 저장되는 식입니다.

select는
SELECT sales_no FROM sales PARTITION (sales_q1); 하면 20050101 이하의 값들이 저장된 데이터만 조회하겠죠

처음에 로그테이블을 날렸다고 했듯 자료가 무진장 쌓이고 기간별로만 사용하는 데이터를 저장할때는 사용해도 좋을듯 싶습니다.

결론은 테이블의 저장데이터범위에 따른 파티션을 설정하고 입력은 하던대로, 조회는 파티션별로.

우리회사에서 쓸일은 없겠지만 다른회사 개발자가 덜컥 얘기 꺼냈을때 포커페이스를 유지하시려면 알아두세요
Posted by 윤재현 :