Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Procédure stockée lente lorsqu'elle est appelée depuis le Web, rapide depuis Management Studio

J'ai eu un problème similaire dans le passé, donc j'ai hâte de voir une résolution à cette question. Le commentaire d'Aaron Bertrand sur l'OP a conduit à 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 , et bien que la question ne soit pas un doublon, la réponse peut très bien s'appliquer à votre situation.

Essentiellement, il semble que SQL Server ait un plan d'exécution en cache corrompu. Vous frappez le mauvais plan avec votre serveur Web, mais SSMS atterrit sur un plan différent car il y a un paramètre différent sur l'indicateur ARITHABORT (qui n'aurait autrement aucun impact sur votre requête particulière/procédure stockée).

Voir ADO.NET appelant la procédure stockée T-SQL provoque une SqlTimeoutException pour un autre exemple, avec une explication et une résolution plus complètes.