오라클 10g 강좌 - http://www.oracleclub.com/oracle10g.action?lectureType=ORACLE10G

파티션 테이블이란 ?

- Partitioning(분할)은 용량이 큰(지속적으로 증가하는) Table들을 Partition이라는 보다 작은 단위로 나눔으로써 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 하고자 하는 개념 입니다.

- 각 Partition 은 별개의 Segment에 저장 되어 개별적으로 관리 가능하며, 다른 partition 에 독립적이기 때문에 더 나은 성능을 가져 옵니다.

- 각 Partition은 열(Column)과 제약조건에 대한 정의를 공유하지만 별도의 SEGMENT로 저장되어 물리적인 속성인 PCTFREE, PCTUSED, TABLESPACE 및 STORAGE PARAMETER등은 다르게 지정할 수 있습니다.

- Partition Table과 Index 는 VLDB(Very Large Databases) 즉, Data Warehouse(DW)시스템과 의사결정 시스템의 경우 성능과 관리에 많은 향상을 가져 옵니다.

- Partition의 종류에는 Range partition, Hash partition, List partition, Composite partition이 있습니다.

파티션 테이블 장점

- 데이터 액세스시 범위를 액세스 범위를 줄여 Performance 향상을 가져올 수 있습니다.

- 여러 분할 영역으로 관리되어 데이터 훼손 가능성이 감소 되고, I/O 성능 향상을 가져 올 수 있습니다.

- 각 분할 영역을 독립적으로 백업하고 복구 할 수 있습니다.






Range Partition 이란?

- Range Partition은 Column 값 의 범위를 기준으로 하여 행을 분할하는 형태로, 달, 분기 등의 logical 한 범위의 분산에 주로 사용 합니다.

즉, 정해진 범위에 따라 비슷한 크기로 partition 이 예상되는 곳에 효율적입니다.

- Range Partition을 생성할 때 어느 행을 기준으로 어느 만큼의 값의 범위로 분할 할지를 다음 두 절에서 정의하게 됩니다.

☞ PARTITION BY RANGE (column list..)
: 기본 Table에서 어느 Column을 기준으로 분할할지를 정합니다.

☞ ·VALUES LESS THAN(value list.. ) :
: 각 Partition이 어떤 값의 범위를 포함 할지 MAX Value값을 정합니다.

- PARTITION BY RANGE 절에서 지정 할 수 있는 Column은 한 개의 Column만으로 구성할 할 수도 있고 결합인덱스처럼 여러 개의 Column이 지정될 수 도 있습니다. (최대 16개 Column을 지원).




Hash Partition 이란?


- Hash Partition은 Partitioning Key 값에 해시 함수를 적용하여 Data를 분할하는 방식으로 History Data의 관리의 목적 보다는 성능 향상의 목적으로 나온 개념 입니다

- Hash Partition 은 Range Partition 으로 만들기 힘든 사항 즉, 조건을 주기 힘든 경우, 각 파티션 이 고르게 나누어지지 않아 밸런스을 유지하기 힘든 경우라고 판단되는 경우에 유리합니다.

- Hash Partition 의 경우 각각 다른 파티션에 데이터가 고르게 분산시키기 위해서는 반드시 파티션 의 개수를 명시하여야 하며, 파티션의 수를 2 의 거듭 제곱수 (즉, 2,4,8,16 ….)로 설정하여야 합니다.

- NULL 값은 첫 번째 파티션에 위치하게 됩니다.




List Partition 이란?


- 특정 Column의 특정 값으로 Partitioning을 하는 방법 입니다.

- List partition의 장점은 연관되지 않은 데이터, 순서에 맞지 않는 데이터의 grouping 을 쉽게 할 수 있습니다.

- 각 값 별로 분포도가 비슷하며, 많은 SQL에서 해당 Column의 조건이 많이 들어오는 경우 유용 합니다.

- 각 Partition의 분포도가 현격한 차이가 발생하지 않도록 해야 합니다.

- 여러 컬럼으로 partition key 생성이 가능하지 않으며 오직 하나의 column으로 구성되어야 합니다.

- Partition key 값은 NULL 값 또한 명시 가능하며, NULL 값을 포함한 어떠한 값이라도 한번만 명시할 수 있습니다.

- 대소문자를 구분 함, 범위외 문자 입력 에러 발생.




Composite Partition 이란

- Composite Partition 은 partition 의 partitioning 입니다.
- Range-Hash Partitioning 과 Range-List Partitioning으로 구분 됩니다.



Composite Range-Hash Partitioning


- Range 방식을 사용하여 데이터를 Partitioning하고 각각의 Partition 내에서 Hash 방식을 이용하여 Sub-Partitioning을 하는 방법 입니다.

- Range와 Hash 두 Partitioning 방식의 장점을 이용하여 만든 개념 입니다.


Composite Range-List Partitioning


- Range방식을 사용하여 데이터를 Partitioning하고 각각의 파티션 내에서 List 방식을 이용하여 Sub-Partitioning을 하는 방법 입니다.

- Composite Range-Hash method와는 달리 이 방법은 각 row가 어느 서브파티션에 속하게 될지를 조절할 수 있습니다.

- 그러나, multiple subpartition keys는 지원하지 않습니다. 이는 List 파티션이 지원하지 않기 때문이며, 오직 하나의 column만 key partition으로 가능합니다.




출처
================================================
* 데이터베이스 정보공유 커뮤니티 oracleclub.com
* 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
================================================
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2009/09/08 11:23 2009/09/08 11:23
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/4607

Trackback URL : http://tcbs17.cafe24.com/tc/trackback/4607

« Previous : 1 : ... 1839 : 1840 : 1841 : 1842 : 1843 : 1844 : 1845 : 1846 : 1847 : ... 6391 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Statistics Graph

Site Stats

Total hits:
186380
Today:
638
Yesterday:
745