Gespeicherte Prozedur hängt scheinbar ohne Erklärung

Wir haben eine gespeicherte Prozedur, die bis vor 10 Minuten einwandfrei lief und dann nur hängt, nachdem Sie sie aufgerufen haben.

Beobachtungen:

Kopieren des Codes in ein Abfragefenster ergibt das Abfrageergebnis in 1 SekundeSP dauert> 2,5 Minuten, bis ich es storniereActivity Monitor zeigt, dass es nicht durch irgendetwas blockiert wird, sondern nur ein SELECT ausführt.Running sp_recompile auf dem SP hilft nichtDas Löschen und Neuerstellen des SP hilft nicht Das Setzen von LOCK_TIMEOUT auf 1 Sekunde hilft nicht

Was kann sonst noch los sein?

AKTUALISIERE: Ich schätze, es hat mit Parameter-Sniffing zu tun. Ich benutzte Adam Machanics Routine, um herauszufinden, welche Unterabfrage hängte. Ich habe aufgrund des Hinweises von Martin Smith einen Fehler im Abfrageplan festgestellt. Ich lernte darüberEXEC ... WITH RECOMPILE, OPTION(RECOMPILE) für Unterabfragen innerhalb des SP undOPTION (OPTIMIZE FOR (@parameter = 1)), um das Parameter-Sniffing anzugreifen. Ich weiß immer noch nicht, was in diesem speziellen Fall los war, aber ich bin aus dieser Schlacht herausgekommen, erfahren und viel besser bewaffnet. Ich weiß, was ich nächstes Mal tun soll. Also hier sind die Punkte!

Antworten auf die Frage(12)

Ihre Antwort auf die Frage