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 생태계에 혁신적인 변화를 가져올 것으로 예상되는 MCP(Model Context Protocol)에 대해 상세히 알아보겠습니다. 2024년…
1. TPM이란? TPM(Trusted Platform Module)은 국제 표준 기반의 보안 하드웨어 칩으로, 컴퓨터나 디지털 장비 내에서…
시즌2, 기대했는데... 실망도 두 배!두뇌싸움을 기대했는데, 전략도 없는 자기들만의 감정에 따른 편가르기, 정치싸움이 되어 버린…
BPF(Berkeley Packet Filter) 도어는 해커가 관리자 몰래 뒷문을 새로 만든 것입니다.해커가 명령을 내려 특정 데이터들을 뒷문을…
1. IPC의 개념과 목적 1.1 IPC란 무엇인가? IPC (Inter-Process Communication)는 운영체제 내의 서로 독립적인 프로세스…