Oracle Partitioning은 대용량 테이블과 인덱스를 여러 개의 파티션으로 나누어 관리하는 기술입니다. 이를 통해 쿼리 성능 향상, 병렬 처리 최적화, 관리 용이성 개선 등의 장점을 제공합니다.
Oracle에서는 여러 가지 파티션 방식을 제공하며, 데이터의 분할 기준에 따라 나뉩니다.
📌 예제: 주문일(order_date
)을 기준으로 분할
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'))
);
p_2023
: 2023년까지의 주문 데이터 저장p_2024
: 2024년 주문 데이터 저장✔ 장점:
📌 예제: 국가(region
)를 기준으로 파티션 분할
CREATE TABLE customers (
customer_id NUMBER,
customer_name VARCHAR2(100),
region VARCHAR2(50)
)
PARTITION BY LIST (region) (
PARTITION p_korea VALUES ('KOREA'),
PARTITION p_usa VALUES ('USA'),
PARTITION p_others VALUES (DEFAULT)
);
p_korea
: 한국 데이터 저장p_usa
: 미국 데이터 저장p_others
: 그 외 국가 데이터 저장✔ 장점:
📌 예제: 고객 ID를 기준으로 해시 파티션 적용
CREATE TABLE transactions (
transaction_id NUMBER,
customer_id NUMBER,
amount NUMBER
)
PARTITION BY HASH (customer_id)
PARTITIONS 4;
✔ 장점:
📌 예제: 연도별(RANGE) + 고객 ID(HASH) 복합 파티션 적용
CREATE TABLE sales (
sale_id NUMBER,
sale_date DATE,
customer_id NUMBER,
amount NUMBER
)
PARTITION BY RANGE (sale_date)
SUBPARTITION BY HASH (customer_id)
SUBPARTITIONS 4 (
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'))
);
연도별로 1차 분할 (RANGE
)
HASH
)✔ 장점:
Partition Pruning(파티션 절단)은 불필요한 파티션을 자동으로 제외하여 성능을 최적화하는 기법입니다.
쿼리에서 특정 조건을 포함하면 해당 파티션만 접근하여 I/O 부하를 줄일 수 있음.
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
파티션만 읽고, 다른 파티션(p_2023 등)은 읽지 않음 → I/O 최소화SELECT * FROM customers WHERE region = 'KOREA';
✔ 결과:
p_korea
파티션만 접근 → 성능 향상SELECT * FROM transactions WHERE customer_id = 12345;
✔ 결과:
customer_id
해시 값에 따라 특정 파티션에만 접근 → 랜덤 분산에도 불필요한 I/O 최소화ALTER TABLE orders ADD PARTITION p_2025 VALUES LESS THAN (TO_DATE('2026-01-01', 'YYYY-MM-DD'));
ALTER TABLE orders DROP PARTITION p_2023;
ALTER TABLE orders MERGE PARTITIONS p_2023, p_2024 INTO PARTITION p_merged;
ALTER TABLE orders TRUNCATE PARTITION p_2023;
✅ Oracle Partitioning은 대량 데이터의 효율적인 관리와 성능 최적화에 필수적인 기술
✅ 프루닝을 통해 쿼리 속도를 대폭 향상 가능
✅ RANGE, LIST, HASH, COMPOSITE 등의 파티션 기법을 적절히 활용하여 성능 개선 가능
✅ 불필요한 데이터 관리(삭제, 이동)도 쉽게 수행 가능
🎯 대용량 데이터 처리 및 분석 업무에서 반드시 고려해야 할 핵심 기술! 🚀
오늘은 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)는 운영체제 내의 서로 독립적인 프로세스…