TOP 1 で元のクエリを実行してみましたか?ほとんどの場合、同じように遅くなります。
オプティマイザーは、何かが非常に可能性が高く、ほとんど労力をかけずに膨大なデータ セットを返す (つまり、ほとんどすべてのレコードが返される) と判断した場合、最初のレコードとレコードを取得するだけでよいため、主にループ結合を選択します。ループ結合は、いくつかのレコードのみを取得する場合に適しています。それが真実ではないことが判明した場合、結果が出るまでには永遠に 1 日かかります。
あなたの場合、それは非常にまれなように聞こえるので、この選択はひどく痛い.代わりに SELECT @count = COUNT(*) FROM ...
のようなことをしてみてください 次に、そのカウントがゼロでないかどうかを確認します。