Il s'agit généralement de différences de réglage SET, conduisant à des plans différents. Dans Management Studio, la procédure est probablement en cours d'exécution avec le même paramètres tels qu'ils étaient en place lors de sa création.
Jetez un œil à sys.dm_exec_sessions pour votre application ASP.Net et pour votre session SSMS. Je risquerai de deviner qu'au moins un de vos SET
les paramètres sont différents. Cela peut contribuer à différents plans (en fin de compte, cela est attribué au reniflage des paramètres) et le côté application finit généralement par être moins bien loti.
Consultez ces autres questions pour plus de détails :
- Procédure stockée lente lorsqu'elle est appelée depuis le Web, rapide depuis Management Studio
- La procédure expire depuis ADO.NET mais pas dans SSMS
- La requête expire lorsqu'elle est exécutée à partir du Web, mais ultra-rapide lorsqu'elle est exécutée à partir de SSMS
- ADO . NET vs SQL Server Management Studio - ADO fonctionne moins bien
- sql s'exécute rapidement dans ssms lent dans asp.net
Et lisez aussi l'article d'Erland Sommarskog, Lent dans l'application, rapide dans SSMS ?