排他結合 - 排他結合演算を引き起こす場合が多いSQL演算子
排他結合は、リクエストの中に指定されたどの条件も満たしていない(NOT IN)行のみが結合される積結合、マージ結合、またはハッシュ結合です。
言い換えると、排他結合は、第2のテーブルに一致する行を持たない第1のテーブルの中にある行を検出するということです。
排他結合は、外部結合の暗黙の形式です。
動的行パーティション排除を使用する排他プロダクト ジョインは8バイト パーティション化をサポートしていません。
セッション モードの変更については、動的行パーティション排除を使用する包含積結合と排他積結合も参照してください。
SQLを次のように指定すると、最適化ルーチンは頻繁に排他結合を選択します。
- Subquery でNOT IN論理演算子を使用する。
- EXCEPTおよびMINUSセット演算子を使用する。
排他結合とNULLABLE列
結合列にnullの結合行が返されないようにするため、次のいずれかの方法を使用します。
- テーブルを作成するときに、NOT IN結合条件として使用される可能性のある列をNOT NULLとして定義する。
- 問合わせを作成するときに、問題の生じる可能性のある結合にIS NOT NULLを指定して修飾する。例えば、次のようになります。
WHERE Customer.CustAddress IS NOT NULL
排他結合のタイプ
- 排他マージ結合(排他マージ結合を参照)
- 排他プロダクト ジョイン(排他プロダクト ジョインを参照)
- 排他ハッシュ結合(ハッシュ結合を参照)