Nie jest to najlepszy wątek, jaki widziałem w tej sprawie, ale w środku są dobre linki i jest to w mojej historii postów:
Zapytanie SQL, które działa dobrze w SSMS działa bardzo wolno w ASP.NET
Optymalizator SQL czasami lubi decydować o tym, co jest najlepsze i będziesz musiał podzielić swoje zapytanie poprzez śledzenie i rejestrowanie planów wykonania danych. Równie dobrze może to być coś tak ukrytego jak zły indeks lub kod zapytania może wymagać optymalizacji. Ponieważ nie mamy kodu zapytania, a jego posiadanie może, ale nie musi, być pomocne. Zalecam skorzystanie z przewodników, do których linki znajdują się w powyższym poście, i zamknięcie pytania.