[사용 명령어]
select table_owner, table_name, partition_name, high_value, tablespace_name
from dba_tab_partitions;
- 테이블의 파티션을 조회한다.
- high_value : 리스트 파티션은 일치하는 값, 범위 파티션에서는 상한 값을 나타낸다.
select owner, name, column_name
from dba_part_key_columns;
- 파티션의 기준이 되는 컬럼을 조회한다.
create table<테이블명>(
··········
)
partition by list(<컬럼명>)
(
partition<파티션명>values(<컬럼값>)[tablespace<테이블스페이스명>],
partition<파티션명>values(<컬럼값>)[tablespace<테이블스페이스명>],
··········
);
- 파티션으로 구현된 테이블을 생성한다.
- list절에 컬럼명을 여러 개 지정할 수 없다.
alter table<테이블명>
drop partition<파티션명>;
- 파티션을 삭제한다.
파티션은 별다른 튜팅 이슈가 없는 매우 큰 테이블에서 진가를 발휘한다. 기능과 객체 분석이 완벽한 경우에 단순히 테이블의 행이 너무 많아서 성능에 문제가 된다면 그 이유는 예상치 못한 데이터의 폭주일 것이다. 이런 경우 재설계나 재구축 없이 테이블의 재구축만으로 성능을 배가 할 수 있다. 분할된 각 파티션의 다른 디스크 테이블스페이나 디스에 저장된다면 성능이 더 좋아질 수 있다.
select table_owner, table_name, partition_name, high_value, tablespace_name
from dba_tab_partitions;
- 테이블의 파티션을 조회한다.
- high_value : 리스트 파티션은 일치하는 값, 범위 파티션에서는 상한 값을 나타낸다.
select owner, name, column_name
from dba_part_key_columns;
- 파티션의 기준이 되는 컬럼을 조회한다.
create table<테이블명>(
··········
)
partition by list(<컬럼명>)
(
partition<파티션명>values(<컬럼값>)[tablespace<테이블스페이스명>],
partition<파티션명>values(<컬럼값>)[tablespace<테이블스페이스명>],
··········
);
- 파티션으로 구현된 테이블을 생성한다.
- list절에 컬럼명을 여러 개 지정할 수 없다.
alter table<테이블명>
drop partition<파티션명>;
- 파티션을 삭제한다.
파티션은 별다른 튜팅 이슈가 없는 매우 큰 테이블에서 진가를 발휘한다. 기능과 객체 분석이 완벽한 경우에 단순히 테이블의 행이 너무 많아서 성능에 문제가 된다면 그 이유는 예상치 못한 데이터의 폭주일 것이다. 이런 경우 재설계나 재구축 없이 테이블의 재구축만으로 성능을 배가 할 수 있다. 분할된 각 파티션의 다른 디스크 테이블스페이나 디스에 저장된다면 성능이 더 좋아질 수 있다.
'Table' 카테고리의 다른 글
범위 파티션 테이블 생성과 관리 (0) | 2012.02.28 |
---|---|
테이블스페이스 남아 있는 공간 확인 (0) | 2012.02.26 |
테이블 move와 인덱스 rebuild (0) | 2012.02.26 |
세그먼트 (0) | 2012.02.26 |
테이블 생성시 고려할 사항 (0) | 2012.02.26 |