Sybase 12.7 用户手册

下载
页码 212
 5 章    システム・リソースの管理
パフォーマンス&チューニング・ガイド
143
ロードを高速化するための
 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 つのベース・テーブル ( この例では JANUARY、FEBRUARY、ま
たは
 MARCH) にデータをロードできます。次の月は、同じカラムと同じイン
デックス・タイプで構成された新しいテーブルにデータをロードします。
構文の詳細については、
Sybase IQ リファレンス・マニュアル』の「UNION
演算」を参照してください。
注意
UNION ALL ビューに対して INSERT...SELECT を実行することはできま
せん。
UNION ALL ビューを参照するクエリの最適化
最適化が効果を発揮するためには、
UNION ALL ビューのすべてのパーティ
ションにすべてのインデックスが定義されている必要があります。
DISTINCT を指定するクエリでは、UNION ALL ビューを使用すると、ベース・
テーブルを使用するよりも実行速度が遅くなる傾向があります。