728x90
- 파티션이란?
- 파티션이란 특정한 기준으로 데이터를 분할하여 저장해놓은 테이블
- 논리적인 1개의 테이블에 대해서 물리적으로 여러개의 파티션 테이블이 생성되는 것
- 오랜기간동안 쌓인 데이터를 수월하게 관리하고 성능저하를 방지하기 위한 용도로 사용
- 서로 다른 파티션에 저장함으로써 노드간의 디스크 경합을 최소화하여 성능을 향상
- 장점
1. 고가용성
- 파티셔은 독립적으로 관리
- 같은 테이블에서 Unavailable한 파티션은 다른 파티션에 영향을 주지않음
2. 편리한 관리
- 사용자 지정값으로 파티션이 가능
- TableSpace간 파티션 이동이 가능
3. 성능개선
- 데이터를 조회할 때 액세스하는 범위를 줄여 성능이 향상
- 파티션종류
1. 범위(RANGE)파티션
- 날짜나 숫자처럼 범위를 가진 데이터(연속된 값)를 기준으로 하여 만든 파티션 테이블
- 실제 데이터가 물리적으로 저장되는 곳은 Partition으로 나누어진 TableSpace
--사용방법
ALTER TABLE sales
PARTITION BY RANGE (sale_date) (
PARTITION sales_jan VALUES LESS THAN (TO_DATE('2024-02-01', 'YYYY-MM-DD')),
PARTITION sales_feb VALUES LESS THAN (TO_DATE('2024-03-01', 'YYYY-MM-DD')),
PARTITION sales_mar VALUES LESS THAN (TO_DATE('2024-04-01', 'YYYY-MM-DD'))
);
--조회방법
SELECT * FROM sales PARTITION(sales_jan);
-- 결과:
-- SALE_ID | SALE_DATE | AMOUNT
-- 1 | 2024-01-15 | 1000
SELECT * FROM sales PARTITION(sales_feb);
-- 결과:
-- SALE_ID | SALE_DATE | AMOUNT
-- 2 | 2024-02-10 | 2000
-- 3 | 2024-02-20 | 1500
2. 해시(HASH)파티션
- 데이터를 균등하게 분산시키는 방식
- 특정 컬럼의 해시값을 기준으로 나눔
- 해시파티션은 데이터가 어느 파티션에 지정될지 알 수 없기 때문에 관리의 목적보다는 데이터를 분산시켜 디스크성능을 개선하는 목적
--사용방법
ALTER TABLE sales_hash
PARTITION BY HASH (sale_id)
PARTITIONS 4;
--조회방법
--해시 파티션은 직접적인 파티션 이름조회보단 전체에서 분산확인
SELECT sale_id, sale_amount FROM sales_hash;
-- 결과 (예시):
-- SALE_ID | SALE_AMOUNT
-- 1 | 1000
-- 2 | 1500
-- 3 | 2000
-- (파티션 내부 분산은 DBA_TAB_PARTITIONS 등에서 확인 가능)
3. 리스트(List)파티션
- 특정값을 가진 데이터로 만든 파티션 테이블
- 데이터가 균등하게 분포되어 있을 때 유용
--사용방법
ALTER TABLE region_sales
PARTITION BY LIST (region_code) (
PARTITION asia VALUES ('KR', 'JP', 'CN'),
PARTITION europe VALUES ('UK', 'FR', 'DE')
);
--조회방법
SELECT * FROM region_sales PARTITION(asia);
-- 결과:
-- SALE_ID | REGION_CODE
-- 10 | KR
-- 11 | JP
SELECT * FROM region_sales PARTITION(europe);
-- 결과:
-- SALE_ID | REGION_CODE
-- 12 | UK
-- 13 | FR728x90
'DB > sql' 카테고리의 다른 글
| [Oracle] 통계정보(Statistics) (0) | 2025.12.25 |
|---|---|
| [Oracle] 옵티마이저(Optimizer) (0) | 2025.12.24 |
| 이기적SQLD(데이터 모델링)1-1 (0) | 2023.10.24 |
| 오라클 SQL(PL/SQL 제어문) (0) | 2023.10.23 |
| 오라클 SQL(PL/SQL1) (0) | 2023.10.20 |