Oracle에서 파티션 리빌드(Rebuild)는 인덱스 파티션 또는 하위 파티션을 재구성할 때 사용됩니다. 데이터의 재정렬, 공간 최적화, 파티션 데이터 변경 후 성능을 개선하기 위해 리빌드가 필요할 수 있습니다.
다음은 파티션 리빌드에 대한 주요 쿼리와 방법입니다
인덱스 파티션 리빌드
1. 특정 파티션 리빌드
ALTER INDEX 인덱스명 REBUILD PARTITION 파티션명;
• 예제
ALTER INDEX sales_idx REBUILD PARTITION sales_q1_2023;
• 설명
sales_idx 인덱스의 sales_q1_2023 파티션을 리빌드합니다.
리빌드는 해당 인덱스 파티션을 다시 생성하여 데이터 정렬 및 성능을 최적화합니다.
2. 병렬 처리로 리빌드
ALTER INDEX 인덱스명 REBUILD PARTITION 파티션명 PARALLEL N;
• 예제:
ALTER INDEX sales_idx REBUILD PARTITION sales_q1_2023 PARALLEL 4;
• 설명:
병렬도(PARALLEL)를 설정하여 리빌드 작업 속도를 높일 수 있습니다.
3. 모든 파티션 리빌드
ALTER INDEX 인덱스명 REBUILD;
• 예제
ALTER INDEX sales_idx REBUILD;
• 설명
인덱스의 모든 파티션을 순차적으로 리빌드합니다.
테이블 파티션 리빌드
1. 파티션 데이터 이동 및 리빌드
• Oracle에서는 직접 테이블 파티션을 리빌드하는 명령이 없음, 파티션을 재정의하거나 데이터 이동을 통해 유사한 작업을 수행합니다.
• 특정 파티션 데이터 이동
ALTER TABLE 테이블명 MOVE PARTITION 파티션명;
• 예제:
ALTER TABLE sales MOVE PARTITION sales_q1_2023;
• 설명:
테이블의 sales_q1_2023 파티션 데이터를 재정렬합니다.
파티션 데이터가 새로운 세그먼트로 이동하며, 이로 인해 조각화가 줄어듭니다.
2. 파티션 데이터 압축 후 이동
ALTER TABLE 테이블명 MOVE PARTITION 파티션명 COMPRESS FOR OLTP;
• 예제:
ALTER TABLE sales MOVE PARTITION sales_q1_2023 COMPRESS FOR OLTP;
• 설명:
데이터를 압축한 뒤 이동하여 스토리지 사용량을 최적화합니다.
서브파티션 리빌드
1. 특정 서브파티션 리빌드
ALTER TABLE 테이블명 MOVE SUBPARTITION 서브파티션명;
• 예제:
ALTER TABLE sales MOVE SUBPARTITION sales_q1_2023_asia;
2. 서브파티션 리빌드 후 인덱스 재생성
테이블 서브파티션을 리빌드하면 관련된 인덱스가 유효하지 않게 될 수 있습니다. 이 경우 인덱스를 다시 생성해야 합니다.
ALTER INDEX 인덱스명 REBUILD SUBPARTITION 서브파티션명;
• 예제:
ALTER INDEX sales_idx REBUILD SUBPARTITION sales_q1_2023_asia;
파티션 인덱스 리빌드 시 주의사항
1. 병렬도 조정
• 병렬 리빌드는 시스템 리소스를 많이 사용하므로, 적절한 병렬도를 설정해야 합니다.
2. 테이블 잠금
• 파티션 데이터 이동(MOVE)은 테이블 잠금을 유발할 수 있으므로, 낮은 사용량 시간에 실행하는 것이 좋습니다.
3. UNDO/REDO 사용량
• 리빌드 작업은 많은 UNDO 및 REDO 로그를 생성할 수 있으므로, 테이블스페이스와 로그 공간을 확인하십시오.
4. 휴지통으로 데이터 이동 방지
• 리빌드 중 데이터가 휴지통으로 이동하지 않게 하려면 NOPURGE 옵션을 사용할 수 있습니다
ALTER TABLE 테이블명 MOVE PARTITION 파티션명 NOPURGE;
관련 블로그
오라클 특정 파티션 내 데이터 조회
오라클에서 특정 파티션(partition) 내 데이터를 조회하려면 PARTITION 키워드를 사용하여 원하는 파티션만 지정할 수 있습니다. 이는 대량 데이터 처리 시 성능을 최적화하는 데 유용합니다.기본 구
make2t.tistory.com
BETWEEN으로 존재하지 않는 파티션 데이터 조회
BETWEEN으로 존재하지 않는 파티션까지 포함하여 조회할 경우 성능 저하가 발생할 수 있습니다. 이유는 다음과 같습니다:1. 존재하지 않는 파티션 탐색 시도DB 엔진은 BETWEEN 범위에 포함된 모든 파
make2t.tistory.com
'IT > Oracle' 카테고리의 다른 글
오라클 특정 파티션 내 데이터 조회 (0) | 2025.02.23 |
---|---|
Oracle 19c의 기능 (1) | 2025.02.23 |
오라클 enq: RO - fast object reuse 락 (0) | 2025.02.23 |
GROUP BY를 사용 시 성능과 효율성 향상 방안 (0) | 2025.02.22 |
오라클 인덱스 생성시 NOWAIT 옵션 (0) | 2025.02.22 |