Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gespeicherte Prozedur langsam, wenn sie aus dem Web aufgerufen wird, schnell aus Management Studio

Ich hatte in der Vergangenheit ein ähnliches Problem, daher bin ich gespannt auf eine Lösung für diese Frage. Aaron Bertrands Kommentar zum OP führte zu Abfragezeitüberschreitung bei Ausführung aus dem Web, aber superschnell bei Ausführung aus SSMS , und obwohl die Frage kein Duplikat ist, kann die Antwort durchaus auf Ihre Situation zutreffen.

Im Wesentlichen klingt es so, als hätte SQL Server einen beschädigten zwischengespeicherten Ausführungsplan. Sie treffen mit Ihrem Webserver auf einen schlechten Plan, aber SSMS landet auf einem anderen Plan, da es eine andere Einstellung für das ARITHABORT-Flag gibt (was sonst keine Auswirkungen auf Ihre spezielle Abfrage/gespeicherte Prozedur hätte).

Siehe ADO.NET, das eine gespeicherte T-SQL-Prozedur aufruft, verursacht eine SqlTimeoutException für ein weiteres Beispiel mit einer umfassenderen Erklärung und Auflösung.