ロードを高速化するための UNION ALL ビューの使用

5 章 システム・リソースの管理

ロードを高速化するための UNION ALL ビューの使用

非常に大きいテーブルのロード時間を最小限にするには、UNION ALL ビュー を使用します。Sybase IQ では、データを ( たとえば日付ごとに ) 複数の独立し たベース・テーブルに分けて、テーブルを分割できます。データは、これらの 小さいテーブルにロードします。そして、UNION ALL ビューを使ってテーブ ルを1 つの論理的な統一体に結合し、この統一体に対してクエリを実行します。

UNION ALL ビューは、管理が容易です。たとえば、データを月ごとに分割し ている場合は、1 つのテーブルを削除し、UNION ALL ビューの定義を更新す ることによって 1 か月分のデータ全体を削除できます。日付の範囲述部を追加 することなく、年、四半期などに対応する多くのビュー定義を作成できます。

UNION ALL ビューを作成するには、ベース・テーブルを別々の物理テーブル に分割する論理的手段を選択します。最も一般的なのは、月ごとに分割する方 法です。

たとえば、第一四半期のすべての月を含むビューを作成するには、次のコマン ドを入力します。

CREATE VIEW

SELECT * JANUARY

UNION ALL

SELECT * FEBRUARY

UNION ALL

SELECT * MARCH

UNION ALL

月ごとに、1 つのベース・テーブル ( この例では JANUARYFEBRUARY、ま たは MARCH) にデータをロードできます。次の月は、同じカラムと同じイン デックス・タイプで構成された新しいテーブルにデータをロードします。

構文の詳細については、『Sybase IQ リファレンス・マニュアル』の「UNION 演算」を参照してください。

注意 UNION ALL ビューに対して INSERT...SELECT を実行することはできま せん。

UNION ALL ビューを参照するクエリの最適化

最適化が効果を発揮するためには、UNION ALL ビューのすべてのパーティ ションにすべてのインデックスが定義されている必要があります。

DISTINCT を指定するクエリでは、UNION ALL ビューを使用すると、ベース・ テーブルを使用するよりも実行速度が遅くなる傾向があります。

パフォーマンス&チューニング・ガイド

143

Page 159
Image 159
Sybase 12.7 manual ロードを高速化するための Union All ビューの使用, Union All ビューを参照するクエリの最適化, パフォーマンス&チューニング・ガイド