*파티션 테이블
1) 파티션 뷰가 오라클 7 버전 때까지 사용되던 테이블 분할기법이라면 오라클 8 버전부터는 보다 향상된 기능으로 파티션 테이블 기법이 소개된다. 파티션 뷰가 효과적으로 데이터를 분할하여 테이터베이스의 가용성을 높이고, 성능향상을 제공했지만 반면에 프로그래밍이 어렵고 유지보수와 관리가 불편한 점은 그 한계로 남았다. 오라클 사에서는 버전 8 부터 이러한 문제에 대한 해결방법으로 파티션 테이블 기법을 제공한다.
2) 주의사항
- 분할키는 최대 16개 컬럼으로 생성할 수 있다.
- LONG, LONG RAW 타입은 분할컬럼으로 설정할 수 없다.
- 컬럼의 값이 NULL인 경우에는 MAXVALUE 값에 해당된다.
- 만약, 분할조건 값에 정의되지 않은 값이 입력되면 에러가 발생한다.
ORA-14400 INSERTED PARTITION KEY IS BEYOND HIGHEST LEGAL PARTITION KEY
- 백업과 복구를 분할단위로 수행할 수 있다.
CREATE TABLESPACE chul1999
DATAFILE 'D:\DATA\chul1999.dbf' size 5m;
CREATE TABLESPACE chul2000
DATAFILE 'E:\DATA\chul2000.dbf' size 5m;
CREATE TABLESPACE chul2001
DATAFILE 'F:\DATA\chul2001.dbf' size 5m;
CREATE TABLE jeon(idate date, no char(2),
name v2(20), qty number)
PARTITION BY RANGE(idate)
(PARTITION t1 values less than(to_date('2000')) TABLESPACE chul1999,
PARTITION t2 values less than(to_date('2001')) TABLESPACE chul2000,
PARTITION t3 values less than(MAXVALUE) TABLESPACE chul2001);
SQL> INSERT INTO JEON PARTITION (T1)
VALUES((TO_DATE('1999-01-01'), '01', 120);
SQL> UPDATE JEON PARTITION (T1)
SET QTY = 0
WHERE IDATE = TO_DATE('1999-01-01');
SQL> SELECT * FROM JEON PARTITION (T1);
SQL> DELETE FROM JEON PARTITION (T1)
WHERE IDATE = TO_DATE('1999-01-01');
3)범위분할 테이블의 상태를 자료사전으로 부터 확인하는 방법
COL TABLE_NAME FORMAT A10
COL PARTITION_NAME FORMAT A14
COL HIGH_VALUE FORMAT A57
COL TABLESPACE_NAME FORMAT A16
SELECT TABLE_NAME, PARTITION_NAME, HIGH_VALUE, TABLESPACE_NAME
FROM USER_TAB_PARTITIONS
WHERE TABLE_NAME='JEON';
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
공유 커서(Shared cursor) (0) | 2011.09.15 |
---|---|
HASH PARTITION TABLE, LIST PARTITION TABLE (0) | 2011.06.21 |
파티션 뷰 (0) | 2011.06.21 |
Data pump (0) | 2011.06.21 |
파티션 인덱스 (0) | 2011.06.20 |