Czy próbowałeś uruchomić oryginalne zapytanie z TOP 1? najprawdopodobniej będzie tak samo powolny.
Czasami, gdy optymalizator uważa, że coś jest bardzo prawdopodobne i przy niewielkim nakładzie pracy zwróci duży zestaw danych (tj. prawie wszystkie rekordy zostaną zwrócone), wybiera głównie sprzężenia pętli, ponieważ potrzebuje tylko pierwszego i łączenie pętli jest dobre dla uzyskania tylko kilku rekordów. Kiedy okazuje się to nieprawdą, uzyskanie wyników zajmuje wieczność i jeden dzień.
W twoim przypadku brzmi to tak, jakby to było bardzo rzadkie, więc ten wybór bardzo boli. Spróbuj zamiast tego zrobić coś takiego jak SELECT @count = COUNT(*) FROM ...
a następnie sprawdzenie, czy liczba ta jest niezerowa.