アドホック・ジョインとジョイン・インデックスの使用

2 章 テーブルのジョイン

アドホック・ジョインとジョイン・インデックスの使用

クエリで参照されるジョイン・カラムにジョイン・インデックスを定義して いる場合、Sybase IQ は自動的にそれらを使用してクエリ処理を高速化しま

( ジョイン・インデックスの定義については、『Sybase IQ システム管理ガ イド』の「第 6 Sybase IQ インデックスの使用」を参照してください )

ジョイン・インデックスを使用しないジョインを「アドホック・ジョイン」呼 びます。クエリでいくつものテーブルを参照しており、その中にジョイン・イ ンデックスが定義されていないテーブルがある場合、Sybase IQ は定義されて いるテーブルではジョイン・インデックスを、それ以外のテーブルではアド ホック・ジョインを使用します。

可能なすべてのジョインに対してジョイン・インデックスを作成することはで きないため、ときにはアドホック・ジョインが必要になることがあります。 Sybase IQ の最適化によって、クエリはジョイン・インデックスなしでも同等 かそれ以上のパフォーマンスで実行されます。

ジョイン・インデックスの作成には、次の制約があります。

インデックス内では、完全な外部ジョインだけがサポートされます。クエ リは、インデックス付けされている場合、内部、左外部、右外部のジョイ ンになります。

完全な外部ジョインでは、指定された左右両方のテーブルのすべてのロー が結果に含まれ、対応するカラムに一致する値がないカラムについては NULL が返されます。

ジョイン述部の ON 句で使用できる比較演算子は EQUALS だけです。

ON 句の代わりに NATURAL キーワードを使用できますが、1 対のテーブ ルしか指定できません。

ジョイン・インデックス・カラムはいずれも同じデータ型、精度、位取り でなければなりません。

ジョインとデータ型

最適なパフォーマンスを得るには、ジョイン・カラムを類似のデータ型にする 必要があります。Sybase IQ では、暗黙の変換が存在する任意のデータ型でア ドホック・ジョインを行うことができます。ただし、ジョイン・カラムのデー タ型が同じでない場合は、データ型とテーブルのサイズによって、パフォーマ ンスがさまざまな範囲で低下する可能性があります。たとえば、INT BIGINT のカラムにジョインすることはできますが、このジョインによって特定の種類 の最適化ができなくなります。Sybase IQ インデックス・アドバイザは、データ 型が異なるジョイン・カラムにパフォーマンス上の問題があると見なします。

暗黙のデータ型変換のテーブルについては、『Sybase IQ システム管理ガイド』 の「第 7 章 データベースへのデータの入出力」を参照してください。

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

25

Page 41
Image 41
Sybase 12.7 manual アドホック・ジョインとジョイン・インデックスの使用, ジョインとデータ型, パフォーマンス&チューニング・ガイド