728x90
INDEX COALESCE의 특징
- 단편화 최소화
- COALESCE는 인덱스의 리프 블록(leaf block)들 중에서 사용되지 않는 공간(프리 블록)을 병합하여 단편화를 줄입니다.
- 인덱스 구조는 유지되며, 불필요한 I/O를 줄일 수 있습니다.
- 온라인 작업 지원
- COALESCE 작업 중에도 DML(INSERT, UPDATE, DELETE)이 가능하여 OLTP 환경에서 적합합니다.
- 데이터베이스의 가용성을 보장합니다.
- 전체 재구성 없음
- 인덱스를 처음부터 다시 생성하지 않으므로, 리빌드에 비해 리소스 소모가 적습니다.
- 단편화 문제를 해결하는 목적이라면 COALESCE가 리빌드보다 효율적입니다.
- 부분 작업 가능
- COALESCE는 파티셔닝된 인덱스에서 특정 파티션만 작업할 수 있습니다.
COALESCE와 REBUILD의 비교
특성 COALESCE REBUILD
단편화 해결 방식 | 여유 공간 병합 | 전체 인덱스 재생성 |
자원 소모 | 상대적으로 낮음 | 상대적으로 높음 |
온라인 작업 | 지원 (동시 DML 가능) | 지원 (일부 제한적 잠금 발생) |
성능 최적화 | 제한적 | 더 많은 성능 최적화 가능 |
작업 시간 | 더 짧음 | 더 길어질 수 있음 |
Redo/Undo 생성 | 적음 | 많음 |
INDEX COALESCE 사용 방법
1. 일반 인덱스에서 COALESCE 실행
ALTER INDEX <index_name> COALESCE;
2. 파티셔닝된 인덱스에서 특정 파티션에 대해 COALESCE 실행
ALTER INDEX <index_name> MODIFY PARTITION <partition_name> COALESCE;
3. COALESCE 수행 시 사용 가능한 추가 옵션
- PARALLEL: 병렬 처리를 통해 작업 속도를 높일 수 있습니다.
ALTER INDEX <index_name> COALESCE PARALLEL 4;
- MONITORING USAGE: 작업 중 인덱스 사용 통계를 활성화하여 분석에 활용할 수 있습니다.
COALESCE를 사용하는 시점
COALESCE는 다음과 같은 상황에서 유용합니다:
- 인덱스가 단편화된 경우
- 예를 들어, DELETE 작업이 많이 발생해 리프 블록에 사용되지 않는 공간이 많을 때.
- 리빌드 대신 가벼운 유지보수가 필요한 경우
- 성능 최적화가 필요하지만 리소스 소모를 최소화해야 할 때.
- OLTP 환경에서 작업 중 서비스 중단이 불가능한 경우
- COALESCE는 DML과 병행하여 실행할 수 있으므로 OLTP 환경에서 적합합니다.
COALESCE의 한계
- COALESCE는 루트 블록이나 브랜치 블록에는 영향을 미치지 않으며, 리프 블록 단위에서만 작동합니다.
- 단편화 문제를 해결할 수는 있지만, 전체 인덱스 구조 최적화에는 한계가 있습니다.
- 만약 인덱스가 지나치게 크거나 오래된 경우에는 REBUILD가 더 적합할 수 있습니다.
결론
INDEX COALESCE는 단편화를 줄이고 인덱스 효율성을 높이기 위해 가볍고 자원 친화적인 방법으로 설계되었습니다. OLTP 환경에서 인덱스 유지보수를 수행해야 하는 경우, 리빌드보다 서비스 영향이 적고 빠르게 수행할 수 있는 좋은 대안입니다. 다만, 단편화가 심하지 않거나 전체 구조 최적화가 필요하지 않을 때 사용하는 것이 이상적입니다.
728x90
반응형
'Oracle > Admin' 카테고리의 다른 글
[Oracle] ORA-01804 : this index object is being online .. (2) | 2024.11.20 |
---|---|
[ORACLE] RMAN BAKCUP (0) | 2024.11.15 |
[Oracle] Index Rebuild (0) | 2024.11.13 |
[Oracle] ASH, AWR (0) | 2024.11.04 |
[Oracle] Wait Event 목록 (0) | 2024.10.31 |