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

SP dauert 15 Minuten, aber die gleiche Abfrage gibt bei Ausführung Ergebnisse in 1-2 Minuten zurück

Dies ist der Fußabdruck des Parameter-Sniffing. Siehe hier für eine weitere Diskussion darüber; SQL schlechte Leistung des Ausführungsplans für gespeicherte Prozeduren - Parameter-Sniffing

Es gibt mehrere mögliche Korrekturen, darunter das Hinzufügen von WITH RECOMPILE zu Ihrer gespeicherten Prozedur, was etwa die Hälfte der Zeit funktioniert.

Die empfohlene Lösung für die meisten Situationen (obwohl dies von der Struktur Ihrer Abfrage und Sprocs abhängt) ist NICHT Verwenden Sie Ihre Parameter direkt in Ihren Abfragen, sondern speichern Sie sie in lokalen Variablen und verwenden Sie diese Variablen dann in Ihren Abfragen.