오라클 파티션은 반드시 한 개 이상이 존재해야한다.
파티션은 RANGE, HASH, LIST 등등이있는데
많이 사용하는것이 RANGE이다. 일정한 숫자(대부분 날짜)를 기준으로 생성한다.
아래는 파티션 테이블과 기타 내용이다.
- 인덱스 확인
SELECT uic.index_name, uic.column_name, uic.column_position, ui,uniqueness
FROM user_indexes ui, user_ind_columns uic
WHERE uic.index_name = ui.index_name AND uic.table_name = "테이블명';
- 테이블 파티션 확인
SELECT partition_name, high_value
FROM user_tab_partitions
WHERE table_name = '테이블명';
- 파티션 테이블 검색
SELECT subobject_name
FROM user_objects
WHERE object_type = 'TABLE PARTITION' and SUBOBJECT_NAME like '파티션명%';
- 테이블 사용량 확인
SELECT seqment_name, tablespace_name, sum(bytes)/1024/1024 as MB
FROM user_seqments
WHERE segment_name like '테이블명%'
GROUP BY segment_name, talespace_name
ORDER BY sum(bytes)/1024/1024 DESC;
- 파티션 등록
ALTER TABLE 테이블명 ADD PARTITION (PARTITION 파티션명_YYYYMMDD VALUES LESS THAN (YYYYMMDD+1));
- 일단위 파티션 생성(RANGE)
PARTITION BY RANGE (대상 컬럼명)
(
PARTITION 파티션명_YYYYMMDD VALUES LESS THEN(YYYYMMDD+1)
)
- 월단위 파티션 생성(RANGE)
PARTITION BY RANGE (대상 컬럼명)
(
PARTITION 파티션명_YYYYMM VALUES LESS THEN(YYYYMM+1)
)
- 파티션 테이블 삭제
ALTER TABLE 테이블명 TRUNCATE PARTITION 테이블명_YYYMMDD;
ALTER TABLE 테이블명 DROP PARTITION 테이블명_YYYYMMDD;
















덧글