본문 바로가기

DB/SQLD

[SQLD] SQL 활용 - Table Partition

1️⃣ Partition 기능

∙ 파티션은 대용량의 테이블을 여러 개의 데이터 파일에 분리해서 저장한다.

∙ 테이블의 데이터가 물리적으로 분리된 데이터 파일에 저장되면 입력, 수정, 삭제, 조회 성능이 향상된다.

∙ 파티션은 각각의 파티션 별로 독립적으로 관리할 수 있다. 즉, 파티션 별로 백업하고 복구가 가능하며 파티션 전용 인덱스 생성도 가능하다.

∙ 파티션은 Oracle DB의 논리적 관리 단위인 테이블 스페이스 간에 이동이 가능하다.

∙ 데이터를 조회할 때 데이터의 범위를 줄여서 성능을 향상시킨다.

 

2️⃣ Range Partition

∙ Range Partition은 테이블의 칼럼 중에서 값의 범위를 기준으로 여러 개의 파티션으로 데이터를 나누어 저장하는 것이다.

 

3️⃣ List Partition

∙ List Partition은 특정 값을 기준으로 분할하는 방법이다.

 

4️⃣ Hash Partition

∙ Hash Partition은 데이터베이스 관리 시스템이 내부적으로 해시함수를 사용해서 데이터를 분할한다.

∙ 결과적으로 데이터베이스 관리 시스템이 알아서 분할하고 관리하는 것이다.

 

5️⃣ Partition Index

∙ 파티션 인덱스는 4가지 유형의 인덱스를 제공한다.

∙ 파티션 키를 사용해서 인덱스를 만드는 Prefixed Index와 해당 파티션만 사용하는 Local Index 등으로 나누어진다.

∙ Oracle 데이터베이스는 Global Non-Prefixed를 지원하지 않는다.

구분 주요 내용
Global Index  여러 개의 파티션에서 하나의 인덱스를 사용한다.
Local Index  해당 파티션 별로 각자의 인덱스를 사용한다.
Prefixed Index  파티션 키와 인덱스 키가 동일하다.
Non Prefixed Index  파티션 키와 인덱스 키가 다르다.

 

 

 

'DB > SQLD' 카테고리의 다른 글

[SQLD] SQL 활용 - Window Function  (0) 2020.03.12
[SQLD] SQL 활용 - Group Function  (0) 2020.03.12
[SQLD] SQL 활용 - Subquery  (0) 2020.03.11
[SQLD] SQL 활용 - Connect by(계층형 조회)  (0) 2020.03.11
[SQLD] SQL 활용 - Join  (0) 2020.03.11