3

Merge join CARTESIAN は常に危険ですか?

コストが 7 から 40 の範囲のクエリが多数ありますが、実行にはマージ結合デカルトに従います。

クエリのコストが低い場合、マージ結合デカルトについて本当に気にする必要がありますか?

これについて本当に助けが必要です。

どんな助けでも大歓迎です。

ありがとう、サビサ

4

1 に答える 1

7

デカルト結合は、通常、どこかで結合を逃したことを示しています。これは、結果が期待どおりにならず、クエリに必要以上に長い時間がかかる可能性があるという点で悪いことです。

ただし、常にそうであるとは限りません。2 つの比較的小さなテーブルがあり、それぞれ 1 行に絞り込んでいるとします。これらのテーブルは両方とも、同じインデックスにある 2 つの異なる列で、より大きなテーブルに結合されます。この場合、オプティマイザは 2 つの小さな結果セットをデカルト結合することを決定することがあります。これは、結果のデータ セットが大きなテーブルのインデックスをより効果的に使用できるためです。

要するに、計画にデカルト結合が見られる場合は、おそらく詳しく調べて、オプティマイザがそのルートを選択した理由を理解しようとする必要があります。まだ問題を引き起こしていないバグを発見したために頭痛の種がなくなるかもしれませんし、それが本当に最善の計画であるかもしれませんが、クエリごとに個別に決定を下す必要があります。

于 2011-10-14T13:37:04.207 に答える