表パーティション化

表パーティション化は、1 つ以上の表列の値にしたがって、表データが、データ・パーティション と呼ばれる複数のストレージ・オブジェクト間で分割されるデータ編成スキームです。 各データ・パーティションは別々に保管されます。 このストレージ・オブジェクトは異なる表スペース、同じ表スペース内、またはその両方に配置することができます。

ストレージオブジェクトは個々表のように動作し、ALTER TABLEを使用して既存の表をパーティション表に組み込むことにより、迅速なロールインを簡単に実現できます。 ATTACH ステートメント。 同様に、簡単にロールアウトするには、ALTER TABLE ... を使用します。 DETACH ステートメント。 また、照会処理はデータ分離を利用して無関係のデータのスキャンを避けることができます。これにより、多くのデータウェアハウス・スタイルの照会の照会パフォーマンスを向上させることができます。

表データは、CREATE TABLE ステートメントの PARTITION BY 節の指定にしたがってパーティション化されます。 この定義で使用される列は、表パーティション・キー列と呼ばれます。

編成スキームは単独で使用することも、他の編成スキームとともに使用することもできます。 CREATE TABLE ステートメントの DISTRIBUTE BY 節と PARTITION BY 節を結合することによって、データを複数の表スペースにまたがるデータベース・パーティションに広げることができます。 編成スキームには、以下のものが含まれます。
  • DISTRIBUTE BY HASH
  • PARTITION BY RANGE
  • ORGANIZE BY DIMENSIONS

表パーティション化は、 Db2® バージョン 9.1 Enterprise Server Edition for Linux®、UNIX、および Windows 以降で使用できます。

表パーティションの利点

以下の状況のいずれかが自分自身や自分の組織に当てはまる場合、表パーティションの数多くの利点について考慮してください。
  • 表データのロールインやロールアウトを容易にすることによって便利になるデータウェアハウスがある。
  • 大規模な表が含まれるデータウェアハウスがある。
  • 以前のリリースまたは競合データベース製品からバージョン 9.1 データベースへのマイグレーションを考慮している。
  • 階層型ストレージ管理 (HSM) ソリューションをより効率的に使用したい。

表パーティションによって、容易に表データのロールインやロールアウトができ、管理も容易で、索引を柔軟に配置し、照会処理をより効果的に行うことができます。

効率的なロールインおよびロールアウト
表パーティション化は、表データの効率的なロールインおよびロールアウトを可能にします。 ALTER TABLE ステートメントの ATTACH PARTITION 節および DETACH PARTITION 節の使用により、この効率性を実現できます。 パーティション表データをロールインすることによって、新しい範囲を追加のデータ・パーティションとして簡単にパーティション表に取り込むことができます。 パーティション表データのロールアウトによって、その後のパージまたはアーカイブのためにデータの範囲を簡単にパーティション表から分けることができます。

Db2 バージョン 9.7 フィックスパック 1 以降のリリースでは、DETACH PARTITION 節を指定した ALTER TABLE ステートメントを使用してパーティション表からデータ・パーティションをデタッチする間、ソースのパーティション表は、RS、CS、または UR 分離レベルで実行されている動的照会によってアクセス可能な状態を維持します。 同様に、ATTACH PARTITION 節を指定した ALTER TABLE ステートメントを使用してパーティション表にデータ・パーティションをアタッチする間、ターゲットのパーティション表は、RS、CS、または UR 分離レベルで実行されている動的照会によってアクセス可能な状態を維持します。

大規模な表の容易な管理
表レベルの管理は、個々のデータ・パーティションに対して管理用タスクを実行できるので、より柔軟です。 これらのタスクには、データ・パーティションのデタッチおよび再アタッチ、個々のデータ・パーティションのバックアップおよびリストア、および個々の索引の再編成が含まれます。 一連のより細かい操作に分けることによって、時間のかかる保守操作の時間を短くできます。 例えば、複数のデータ・パーティションが異なる表スペースに配置されている場合、バックアップ操作は個々のデータ・パーティションごとに対して実行できます。 つまり、パーティション表のデータ・パーティションを一度に 1 つバックアップすることができます。
柔軟な索引の配置
索引を異なる表スペースに配置して、索引配置をより細かく制御できるようになりました。 この設計には、以下のような利点があります。
  • 索引をドロップしたり、オンラインで索引を作成したりする際のパフォーマンスが向上します。
  • 表の各索引の間で、表スペース特性ごとに異なる値を使用できます (例えば、スペースの使用効率をより良くするには、各索引のページ・サイズに異なる値を使用する方が適している場合があります)。
  • 入出力競合を削減して、表の索引データに効率的な同時アクセスができます。
  • 個々の索引をドロップすると、索引再編成を行わなくてもシステムがスペースをすぐに使用できます。
  • 索引再編成を実行することを選択した場合、個々の索引を再編成することができます。
DMS 表スペースと SMS 表スペースは両方とも、表とは別の場所にある索引の使用をサポートしています。
ビジネス・インテリジェンス・スタイルの照会のパフォーマンスの改善
照会の処理が拡張され、照会の述部に基づいて自動的にデータ・パーティションを除去できるようになりました。 この照会の処理を「データ・パーティション除去」といい、意思決定を支援する多くの照会で役立ちます。
次の例では、CUSTOMERという名前の表を作成します。ここで、l_shipdate> = '01/01/2006'およびl_shipdate< = '03/31/2006'の行は表スペースTS1に保管され、l_shipdate> = '04/01の行です。 / 2006'およびl_shipdate< ='06 / 30/2006'は、表スペースTS2などに保存されます。
CREATE TABLE customer (l_shipdate DATE, l_name CHAR(30)) 
IN ts1, ts2, ts3, ts4, ts5 
PARTITION BY RANGE(l_shipdate) (STARTING FROM ('01/01/2006') 
ENDING AT ('12/31/2006') EVERY (3 MONTHS))