
Oracle Database는 대규모 데이터를 효과적으로 관리하기 위한 다양한 기능을 제공하고 있으며, 그 중 Partitioning 기능은 테이블 및 인덱스를 사용자의 기준으로 분할하여 성능과 확장성을 획기적으로 향상시킬 수 있는 핵심 기술로 손꼽힌다. 이미 수많은 기업과 시스템에서 Oracle Partition 을 활용하고 있으며, 다양한 환경에서의 데이터 접근속도 향상과 관리의 효율성 개선, 특정 파티션 단위의 백업, 복구, 로딩 등 유연한 관리, 운영을 기획하고 있다. Oracle은 지속적인 Database 버전 업그레이드에 따라 다양한 Partition 유형을 도입하고 기능을 강화해 왔으며, 12c 이후부터 온라인 파티셔닝, 자동 파티션 확장, 하이브리드 파티셔닝 등 실무 운영에 즉시 접목시킬 수 있는 고급 기능들이 대거 추가하였다.
본 문서에서는 Oracle Database Partition 기술에 대한 간략한 소개와 함께 Oracle Database 12c부터 최신 23ai까지 주요 Partition 관련 신기능들을 정리하고, 각각의 특징을 기술하고자 한다.
Partition은 대규모 테이블 또는 인덱스를 여러 개의 작은 단위로 나누어 구성된 데이터베이스 객체이다. 이러한 구조는 논리적인 하나의 테이블이 물리적으로 여러 공간에 나누어 저장되는 것으로 각 파티션은 개별적으로 관리 될 수 있으며, 쿼리 실행 시 Optimizer가 적절한 파티션만 스캔하는 Partition Pruning 기법, 특정 파티션에만 할당되는 Local Index 등을 적용함으로써 성능을 극대화할 수 있다.
Partition을 구성함으로써 다음과 같은 다양한 이점을 얻을 수 있다.
성능 향상
데이터 접근 효율 향상으로 쿼리 처리 속도 개선
관리의 편리성
테이블이 커지더라도 파티션 단위로 관리 가능
병렬 처리 최적화
파티션 단위 병렬처리를 통해 대용량 작업에 대한 효율 증가
Oracle에서 제공하는 주요 Partition은 아래와 같다.
Range Partition
지정한 범위를 기준으로 파티션 분할 (ex. 연도, 금액)
List Partition
특정 값에 따라 파티션 분할 (ex. 국가, 지역)
Hash Partition
Hash 알고리즘에 따라 균등하게 파티션 분할 (ex. 사용자 ID)