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