No es el mejor hilo que he visto sobre el tema, pero hay buenos enlaces dentro, y está en mi historial de publicaciones:
La consulta SQL que funciona bien en SSMS funciona muy lentamente en ASP.NET
A SQL Optimizer a veces le gusta decidir qué es lo mejor y tendrá que desglosar su consulta a través de un seguimiento y registro de los planes de ejecución de datos. Es muy posible que sea algo tan oculto como un índice incorrecto, o que su código de consulta necesite optimización. Ya que no tenemos el código de consulta, y tenerlo puede ser útil o no. Te recomiendo que sigas las guías vinculadas en la publicación anterior y cierres tu pregunta.