Nachdem ich festgestellt hatte, dass die ADO.NET-Verbindung die Ursache des Problems ist, führte mich dieser Thread zur Antwort.
Grundsätzlich haben Verbindungen über Sql Server Management Studio (SSMS) standardmäßig SET ARITHABORT ON
. ADO.NET-Verbindungen nicht.
ARITHABORT OFF
einstellen und die Ausführung der Abfrage direkt über SSMS gibt mir die gleiche langsame Antwortzeit.
Der Hauptunterschied bei der Ausführung mit oder ohne diese Einstellung besteht darin, dass für die beiden Aufrufe ein anderer Abfrageplan erstellt wird. Wenn ARITHABORT
war OFF
, würde der SSMS-Befehl den vorkompilierten zwischengespeicherten Abfrageplan verwenden, den die ADO.NET-Verbindung verwendet, und daher eine Zeitüberschreitung.
Durch Ausführen der folgenden Befehle als Administrator auf der Datenbank werden alle Abfragen wie erwartet ausgeführt, unabhängig vom ARITHABORT
Einstellung.
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Ich kann nur davon ausgehen, dass ein kompilierter Abfrageplan beschädigt oder ungültig wurde.
Ich werde dies als Lösung (ich habe die Antwort positiv bewertet) im anderen Thread verwenden
Danke.