私はこれについて非常に混乱しています。最終的なSQLステートメントが動的に構築され、多くの関数とプロシージャがこれに関与しているため、例を提供できません...
一般的に、私は5つの結合を持っています。それらの1つを削除すると、ステートメントが0秒間実行され、それ以外の場合は4分以上実行されることに気付きました。次に、実際の実行プランを調べたところ、「マージ結合」には多くのコストがかかることに気付きました。Googleで検索すると、または「OPTION(MERGE JOIN)」を使用して「INNERMERGE JOIN」が表示され、ステートメントが終了します。
クエリが0秒間実行されるので、これは本当に良かったです。しかし、私の質問はなぜですか?
少し調べてみたところ、MERGE結合を使用するには、2つのステートメントを並べ替える必要があることがわかりました。これは私の場合ではなく、そうではなく、0秒で正しい結果が得られます。
なぜこれが発生する可能性があるのか、T-SQLのアイデアを進歩させた人はいますか?
私はすでに解決策を持っていることを知っていますが、なぜこれが機能しているのか、そして何が起こっているのかを知りたいです。