Por lo general, estas son diferencias de configuración ESTABLECIDAS, lo que lleva a diferentes planes. En Management Studio, el procedimiento probablemente se está ejecutando con el mismo configuración tal y como estaba cuando se creó.
Eche un vistazo a sys.dm_exec_sessions para su aplicación ASP.Net y para su sesión de SSMS. Me arriesgaré a adivinar que al menos uno de sus SET
la configuración es diferente. Esto puede contribuir a diferentes planes (en última instancia, esto se atribuye a la detección de parámetros) y el lado de la aplicación generalmente termina peor.
Consulte estas otras preguntas para obtener más detalles:
- Procedimiento almacenado lento cuando se llama desde la web, rápido desde Management Studio
- El procedimiento expira en ADO.NET pero no en SSMS
- La consulta se agota cuando se ejecuta desde la web, pero es muy rápida cuando se ejecuta desde SSMS
- ADO . NET frente a SQL Server Management Studio:ADO funciona peor
- sql se ejecuta rápido en ssms lento en asp.net
Y lea también el artículo de Erland Sommarskog, ¿Lento en la aplicación, rápido en SSMS?