Une fois que j'ai déterminé que c'est la connexion ADO.NET à l'origine du problème, ce fil m'a conduit à la réponse.
Fondamentalement, les connexions via Sql Server Management Studio (SSMS) ont par défaut SET ARITHABORT ON
. Les connexions ADO.NET ne le font pas.
Réglage ARITHABORT OFF
et l'exécution de la requête directement via SSMS me donne le même temps de réponse lent.
La principale différence lors de l'exécution avec ou sans ce paramètre est qu'un plan de requête différent est créé pour les deux appels. Lorsque ARITHABORT
était OFF
, la commande SSMS utiliserait le plan de requête mis en cache précompilé que la connexion ADO.NET utilisait, et donc expirerait.
En exécutant les commandes suivantes en tant qu'administrateur sur la base de données, toutes les requêtes s'exécutent comme prévu, quel que soit le ARITHABORT
réglage.
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Je ne peux que supposer qu'un plan de requête compilé est devenu corrompu ou invalide.
J'irai avec cela comme solution (j'ai voté pour la réponse) sur l'autre fil
Merci.