4.8 パーティションオプション、マテリアライズドビュー

4.8 パーティションオプション、マテリアライズドビュー

リストパーティション

リストパーティションは、列値ごとに行をパーティションに分ける場合に使用します。
ただし、指定する列は、レンジ、ハッシュパーティションとは異なり、単一列しか指定できません。
リストパーティションを作成する場合、次の情報を指定します。
分析系のデータベースで、分析の切り口を管理する表に使用することが考えられます。

● パーティション化の方法

● パーティションキー列(単一列のみ可)

● パーティション数または個々のバーテンションの記述(各パーティションに名前をつけた方がメンテナンスに便利)

【構文例】

コンポジットパーティション

コンポジットパーティションには、次の2種類があります。

  • レンジハッシュパーティション
  • レンジリストパーティション

レンジハッシュパーティション

レンジパーティションでWHERE条件句によるパーティションブルーニングの効果を発揮することができ、ハッシュサブパーティションによって、パーティションワイズ結合の効果を得ることができます。

レンジ リストパーティション

レンジパーティションが適用できる表であり、かつ、ユーザのアプリケーションで使用する論理グループが、リストサブパーティションで指定されるグループ化の必要がある場合、このコンポジットパーティションが選択されます。

コンポジットパーティションを作成する場合、次の情報を指定します。

  • パーティション化の方法(PARTITlON BY)
  • パーティションキー列(単一列でも複数列でも可)
  • 各パーティションの範囲(各パーティションに名前をつけた方がメンテナンスの際便利)
  • サブパーティション化の方法(SUBPARTION BY)
  • サブパーティションキー列(単一列でも複数列でも可)
  • 各パーティションごとのサブパーティション数または個々のサブパーティションの記述
  • 物理属性は表定義時のデフォルト値をそのまま使用できるが、パーティションごとに設定することも可能

【構文例】

図4-33のコンポジットパーティション(レンジリストパーティション)は、レンジパーティションのレベルで4つのパーティションに、さらにそのパーティションを8つのサブパーティションに分けることになります。
計32個の物理的なパーティションに分けることになります。

日付データを管理するORDERDATE列をキー列として作成したレンジパーティションは、WHERE条件式で指定されたORDERDATE列の備に応じて、パーティションプルーニングを行う際に有効です。
一方、CUSTOMERS表との結合に使用されるCUSTNO列をキー列として作成したハッシュパーティションは、CUSTOMERS表(こちらもハッシュパーティションで8等分に分割)との結合の際に、パーティションワイズ結合を使う際に利用され、効率的な結合処理を行うことができます。

このように、コンポジットパーティションは、非常に大規模な表において、パーティションブルーニングと、パーティションワイズ結合の両方を有効に使用することができます。

< 前へ | 4.8 パーティションオプション、マテリアライズドビュー | 次へ >

解説トレーナー

Oracle / 上流工程 担当 中村 才千代

データベース設計、システム構築の上流~下流工程全般のインストラクターです。SE時代の経験を生かし「業務を知るエンジニアこそDB設計に関わるべき」「DB設計に携わるエンジニアは業務を知る人に知恵を貸してもらう」ことを伝えたいと思っています。

■認定・受賞

2000年 Oracle University「Best Instructor of the Year」受賞
2002年 Oracle University「Best Instructor of the Year」受賞

Page Top