この章では、データ・ウェアハウス環境でのパーティション化の概要について説明します。内容は次のとおりです。
データ・ウェアハウスには非常に大きな表が含まれることが多く、これらの大規模な表を管理し、最適な問合せパフォーマンスを得るためのテクニックが必要とされます。これの実現に加え、データ・アクセスを向上させたり、全体的なアプリケーション・パフォーマンスを改善するために重要となるツールが、パーティション化です。
パーティション化では、非常に大きな表および索引をパーティションと呼ばれるより小さくて管理しやすい部分に分解します。そのため、特に数百万行および数GBのデータを含む表および索引にアクセスするアプリケーションに対して有効です。パーティション表およびパーティション索引を使用すると、データのサブセット上で管理操作を実行できるため、管理操作が簡単になります。たとえば、読取り専用アプリケーションへの割込みをゼロまたは最小限に抑えて、新しいパーティションの追加、既存のパーティションの編成またはパーティションの削除を行うことができます。
パーティション化は、SQL文をチューニングして、(パーティション・プルーニングの使用による)不要な索引および表のスキャンを回避する場合に効果的です。また、パーティション・ワイズ結合を使用して大量のデータ(たとえば、数百万行)を結合する場合の、大規模な結合操作のパフォーマンスを改善することもできます。さらに、データのパーティション化によって、非常に大規模なデータベースの管理が大幅に改善され、バックアップやリストアなどの管理作業に必要な時間が大幅に削減されます。
パーティションを追加または作成するとき、データが最初に挿入されるまで、セグメント作成を遅延させるオプションがあります。これは大きなフットプリントのあるアプリケーションをインストールする場合に特に有用です。
パーティション化方法における最小単位は、パーティションを分割したりマージしたりすることで簡単に変更できます。つまり、表の一部のパーティションにデータが偏っているような場合に、多くのデータが含まれているパーティションを分割してデータをより均等に分散させることが可能です。また、パーティション化すると、パーティションを表とスワップできます。大量のデータをすばやく簡単に追加、削除またはスワップできるようになるため、スワッピングを利用してロードが完了するまでロード中の大量データをアクセス不可にしたり、様々な使用フェーズ間でデータをステージングする手段としてスワッピングを使用することができます。たとえば、当日のトランザクションやオンライン・アーカイブは、その一例です。
パーティション化方法を検討するにあたっては、まずTuning Packに含まれているSQLアクセス・アドバイザのパーティション化アドバイスを使用することをお薦めします。SQLアクセス・アドバイザでは、グラフィカル・インタフェースとコマンドライン・インタフェースの両方を使用できます。
一般的にパーティション化とともに使用される補足的な方法はパラレル実行です。これは長時間問合せ、ETLおよびその他の操作を高速化します。パラレル・ステートメントの負荷が非常に高いデータ・ウェアハウスでは、パラレル・ステートメント・キューイングを使用して自動的にパラレル・ステートメントを管理できます。
参照:
|