[Oracle][Performance]善用Partition Table#簡介

[Oracle][Performance]善用Partition Table#簡介

Oracle Partition Table用途大致和小弟之前介紹SQL SERVER Partition Table大同小異

所以這篇我將介紹Oracle Partition table有那些類型

 

Partition 類型

List  Partitioning
Hash Partitioning
Range Partitioning
Composite Partitioning
Interval Partitioning
Reference Partitioning
System Partitioning
Virtual Column Partitioning

 

Oracle 11g新增功能

Interval Partitioning
System Partitioning
Reference Partitioning
Virtual Column Partitioning
Partition Advisor

 

List
在每一個Partition中,可指定一組彼此不相關的值做為Partition key。
只能支援一個Partition Column(目前尚未支援多個Partition Columns)。
最好建立Default Partitions(以免出現未預期資料) 。

Hash
最常使用在沒有歷史性的資料或明顯的partition key,以及無法分辦範圍。
每一個Partition資料量可以平均(多一到hash function計算)。
算比較容易建立partition的方式。
一般對於partition Table的管理方式並不適用於Hash Partitions, Hash partitions 有特殊的added and coalesced 指令可用。

Range
最常用以date或是number來劃分partition方法。
partition key 為時間區間或是number區間。
每一個partition 均會有VALUES LESS THAN。

Composite
為複合型的partition type。有6種組合,在10g時只有RANGE-HASH、RANGE-LIST,

11g之後有6種組合Range-Hash、 Range-List、Range-Range、List-Range、List-Hash、List-List 。
composite partitions 不適用在Index organized tables (tables where index and data are stored together) 。

Interval Partitioning
只能指定一個date或是number的type當成interval,至少要有ㄧ個partition才能讓ORACLE自動產生partition不需人工介入。
Interval partitioning 不支援 index-organized tables。
在interval-partitioned table不能建立domain index 。

Reference Partitioning
針對有parent – child 關係的 child table。

System Partitioning
不需指定partition column、partition key即可建立partition。
Data 存放位置由application控制而非由database來控制。
不支援 Partition Split,與create table as select 操作。

Virtual Column-Based Partitioning
partition column建立在Virtual column,其餘部份皆與其他類型的partition相同 。

Partition Advisor
使用EM操作Partition Advisor可以根據workload of SQL建議那一種partition最適合。

image