この記事ではOracle Partitioningについて解説します。
Oracle Partitioningとは
Oracle Partitioningとは表や索引を複数に分割(パーティション化)して管理する機能です。
大量のデータが格納された表などで使用することによって、アクセス速度を高めることができます。
パーティション化されていても単一のオブジェクトとして扱われるため、問い合わせの際に意識することなく使用できます。
Oracle PartitioningはEnterprise Editionのオプション製品です。
そのため使用するには別途ライセンス費用が必要です。
Oracle Partitioningのメリット
Oracle Partitioningを使用するメリットは大きく2つあります。
1つはアクセス速度の向上です。
大量のデータが格納された表では読み込み範囲が広く、大量のディスクI/Oが発生し、処理に時間がかかります。
あらかじめ表をパーティション化しておくことで、データを読み込む範囲をそのパーティション化された表のみにすることができます。
結果、ディスクI/Oの量を減らし、アクセス速度を高めることができます。
2つめのメリットは管理性の向上です。
通常のテーブル全体への処理をパーティション単位で行うことができます。
他のパーティションに影響を与えずに作業ができる点は表を管理するうえで非常に便利です。
パーティションの種類
パーティション化する際は次の3つの方法で分類し、行うことが多いです。
・レンジパーティション
パーティションの基準となる「キー値」の範囲で分割する方法です。
キー値を日付として、月単位などでパーティション化することができます。
・リストパーティション
キー値がいくつかの決められた値に該当する際に、そのキー値の値で分類する方法です。
例えばキー値を地域コードとして、地域ごとにパーティション化できます。
・ハッシュパーティション
キー値からハッシュ値を算出し、そのハッシュ値に基づいて分類する方法です。
レンジやリストで分類できない場合に使われることが多いです。