4.8 パーティションオプション、マテリアライズドビュー
リストパーティション
リストパーティションは、列値ごとに行をパーティションに分ける場合に使用します。
ただし、指定する列は、レンジ、ハッシュパーティションとは異なり、単一列しか指定できません。
リストパーティションを作成する場合、次の情報を指定します。
分析系のデータベースで、分析の切り口を管理する表に使用することが考えられます。
● パーティション化の方法
● パーティションキー列(単一列のみ可)
● パーティション数または個々のバーテンションの記述(各パーティションに名前をつけた方がメンテナンスに便利)
【構文例】
コンポジットパーティション
コンポジットパーティションには、次の2種類があります。
- レンジハッシュパーティション
- レンジリストパーティション
レンジハッシュパーティション
レンジパーティションでWHERE条件句によるパーティションブルーニングの効果を発揮することができ、ハッシュサブパーティションによって、パーティションワイズ結合の効果を得ることができます。
レンジ リストパーティション
レンジパーティションが適用できる表であり、かつ、ユーザのアプリケーションで使用する論理グループが、リストサブパーティションで指定されるグループ化の必要がある場合、このコンポジットパーティションが選択されます。
コンポジットパーティションを作成する場合、次の情報を指定します。
- パーティション化の方法(PARTITlON BY)
- パーティションキー列(単一列でも複数列でも可)
- 各パーティションの範囲(各パーティションに名前をつけた方がメンテナンスの際便利)
- サブパーティション化の方法(SUBPARTION BY)
- サブパーティションキー列(単一列でも複数列でも可)
- 各パーティションごとのサブパーティション数または個々のサブパーティションの記述
- 物理属性は表定義時のデフォルト値をそのまま使用できるが、パーティションごとに設定することも可能
【構文例】
図4-33のコンポジットパーティション(レンジリストパーティション)は、レンジパーティションのレベルで4つのパーティションに、さらにそのパーティションを8つのサブパーティションに分けることになります。
計32個の物理的なパーティションに分けることになります。
日付データを管理するORDERDATE列をキー列として作成したレンジパーティションは、WHERE条件式で指定されたORDERDATE列の備に応じて、パーティションプルーニングを行う際に有効です。
一方、CUSTOMERS表との結合に使用されるCUSTNO列をキー列として作成したハッシュパーティションは、CUSTOMERS表(こちらもハッシュパーティションで8等分に分割)との結合の際に、パーティションワイズ結合を使う際に利用され、効率的な結合処理を行うことができます。
このように、コンポジットパーティションは、非常に大規模な表において、パーティションブルーニングと、パーティションワイズ結合の両方を有効に使用することができます。
解説トレーナー