Oracle의 Index Partitioning(인덱스 파티션)은 대용량 테이블의 파티션 테이블에 대한 인덱스를 효율적으로 관리하는 기법입니다.
테이블이 파티션되어 있으면, 인덱스도 같은 방식으로 파티션하면 성능과 관리 효율이 향상됩니다.
✔ 장점
Oracle은 테이블의 파티션 방식에 따라 인덱스를 다르게 설정할 수 있습니다.
📌 예제: RANGE PARTITIONED TABLE + LOCAL INDEX
CREATE TABLE orders (
order_id NUMBER,
customer_id NUMBER,
order_date DATE,
amount NUMBER
)
PARTITION BY RANGE (order_date) (
PARTITION p_2023 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD')),
PARTITION p_2024 VALUES LESS THAN (TO_DATE('2025-01-01', 'YYYY-MM-DD'))
);
CREATE INDEX orders_idx ON orders(customer_id)
LOCAL; ✔ 특징
orders 테이블이 order_date 기준으로 RANGE PARTITION되어 있으므로, orders_idx 인덱스도 각 파티션별로 생성됨.📌 예제: GLOBAL HASH PARTITIONED INDEX
CREATE INDEX orders_gidx ON orders(customer_id)
GLOBAL PARTITION BY HASH (customer_id)
PARTITIONS 4; ✔ 특징
📌 예제: 글로벌 논파티션 인덱스
CREATE INDEX orders_gnidx ON orders(customer_id) GLOBAL; ✔ 특징
orders 테이블을 대상으로 하나의 인덱스만 존재.Index Partition Pruning(인덱스 절단)은 불필요한 인덱스 파티션을 자동으로 제외하여 성능을 최적화하는 기법입니다. Pruning은 참고로 원래 가지치기 라는 뜻이 있습니다.
Oracle은 로컬 인덱스를 사용할 경우 자동으로 인덱스 프루닝을 수행합니다.
SELECT * FROM orders WHERE order_date BETWEEN TO_DATE('2024-01-01', 'YYYY-MM-DD')
AND TO_DATE('2024-12-31', 'YYYY-MM-DD'); ✔ 결과:
p_2024 파티션만 검색 → 해당 파티션의 인덱스만 접근 → 불필요한 인덱스 검색 제거 (프루닝)SELECT * FROM orders WHERE customer_id = 12345; ✔ 결과:
테이블에 새로운 파티션을 추가하면 LOCAL INDEX는 자동 추가되지만, GLOBAL INDEX는 수동으로 관리해야 함.
📌 로컬 인덱스 자동 추가
ALTER TABLE orders ADD PARTITION p_2025 VALUES LESS THAN (TO_DATE('2026-01-01', 'YYYY-MM-DD')); 📌 글로벌 인덱스는 수동 재구성 필요
ALTER INDEX orders_gidx REBUILD; 📌 특정 파티션의 인덱스만 삭제
ALTER INDEX orders_idx DROP PARTITION p_2023; 📌 인덱스 파티션만 개별적으로 재구성
ALTER INDEX orders_idx REBUILD PARTITION p_2024; | 구분 | 로컬 파티션 인덱스 (LOCAL) | 글로벌 파티션 인덱스 (GLOBAL) |
|---|---|---|
| 테이블 파티션과 일치 여부 | ✅ 동일한 파티션 방식 적용 | ❌ 독립적인 방식 적용 |
| 프루닝 지원 여부 | ✅ 지원 (자동 최적화) | ✅ 지원 (조건 충족 시) |
| 관리 편의성 | ✅ 테이블 파티션 추가/삭제 시 자동 반영 | ❌ 직접 재구성 필요 |
| 특정 파티션만 인덱싱 가능 | ✅ 가능 (독립적 유지) | ❌ 전체 인덱스 유지 |
| 범위 조회 최적화 | ✅ 특정 파티션 인덱스만 조회 | ❌ 전체 인덱스를 검색 가능 |
✅ Oracle Index Partitioning은 대용량 데이터에서 인덱스 성능을 최적화하는 필수적인 기법
✅ 로컬 인덱스는 테이블과 동일한 파티션 구조를 유지하여 관리가 용이하며, 프루닝을 통한 최적화 가능
✅ 글로벌 인덱스는 특정 조건에서 유리하지만, 관리가 어렵고 전체 인덱스 스캔 가능성이 존재
✅ 업무 환경에 맞게 적절한 인덱스 파티션을 선택하는 것이 중요! 🚀
필기 시험의 접근통제 영역은 용어 하나만 알아도 풀리는 문제와 개념을 뒤집어 묻는 문제가 섞여 나옵니다.…
유튜브에 AI 자동 생성 영상이 넘쳐납니다. 진짜 크리에이터들은 어떻게 살아남아야 할까요? AI와 경쟁하는 3가지 생존…
이틀 전에 사이드카가 걸렸을 때만 해도 "한 번 놀란 장"으로 끝날 줄 알았는데요. 15일 아침…
오전 시황 글에 이어 장중 후속 정리입니다. 코스피는 개장 직후 5%대였던 낙폭이 오전 10시 전후에…
10월 15일 목요일 아침, 코스피가 전날 종가보다 5.59% 낮은 5,673.01로 출발했습니다. 장 시작 7분 만에…
삼성 갤럭시 AI, 써보니 실망스러웠다. 온디바이스 한계, 지역 제한, 낮은 일상 활용도 등 현실적인 문제점…