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