Apakah Anda mencoba menjalankan kueri asli dengan TOP 1? kemungkinan besar akan sama lambatnya.
Terkadang ketika pengoptimal berpikir bahwa ada sesuatu yang sangat mungkin terjadi dan akan mengembalikan kumpulan data yang sangat besar dengan sedikit usaha (yaitu hampir semua catatan akan dikembalikan), ia memilih sebagian besar gabungan loop karena hanya perlu mendapatkan yang pertama dan yang pertama. loop join bagus untuk hanya mendapatkan beberapa catatan. Ketika itu ternyata tidak benar, butuh waktu lama dan satu hari untuk mendapatkan hasil.
Dalam kasus Anda, sepertinya sangat jarang, jadi pilihan ini sangat menyakitkan. Coba lakukan sesuatu seperti SELECT @count = COUNT(*) FROM ...
dan kemudian memeriksa apakah hitungan itu bukan nol.