Warum müssen gespeicherte Prozeduren neu kompiliert werden?

Warum müssen gespeicherte Prozeduren neu kompiliert werden?
Warum müssen gespeicherte Prozeduren neu kompiliert werden?
Anonim

Empfehlungen. Wenn eine Prozedur zum ersten Mal kompiliert oder erneut kompiliert wird, wird der Abfrageplan der Prozedur für den aktuellen Zustand der Datenbank und ihrer Objekte optimiert. … Ein weiterer Grund, eine Prozedur zur Neukompilierung zu zwingen, ist, dem "Parameter-Sniffing"-Verh alten der Prozedurkompilierung entgegenzuwirken.

Sollten gespeicherte Prozeduren vermieden werden?

Gespeicherte Prozeduren fördern schlechte Entwicklungspraktiken, insbesondere verlangen sie, dass Sie gegen DRY (Don't Repeat Yourself) verstoßen, da Sie die Liste der Felder in Ihrer eingeben müssen Datenbanktabelle mindestens ein halbes Dutzend Mal oder öfter. Dies ist ein enormer Schmerz, wenn Sie Ihrer Datenbanktabelle eine einzelne Sp alte hinzufügen müssen.

Was ist Sp_recompile?

sp_recompile sucht ein Objekt nur in der aktuellen Datenbank. Die Abfragen, die von gespeicherten Prozeduren oder Triggern und benutzerdefinierten Funktionen verwendet werden, werden nur optimiert, wenn sie kompiliert werden. … SQL Server automatisch gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen neu kompiliert, wenn dies vorteilhaft ist.

Was macht eine Neukompilierung in SQL?

RECOMPILE – gibt an, dass nach der Ausführung der Abfrage der im Cache gespeicherte Abfrageausführungsplan aus dem Cache entfernt wird. Wenn dieselbe Abfrage erneut ausgeführt wird, befindet sich kein vorhandener Plan im Cache, sodass die Abfrage neu kompiliert werden muss.

Sind Stored Procedures effizient?

Dazu gehören Dinge wie Leerraum und Groß-/Kleinschreibung. Es ist viel unwahrscheinlicher, dass sich eine Abfrage innerhalb einer gespeicherten Prozedur im Vergleich zu einer in Code eingebetteten Abfrage ändert. … Aus diesem Grund wird die gespeicherte Prozedur möglicherweise tatsächlich schneller ausgeführt weil sie einen zwischengespeicherten Plan wiederverwenden konnte.

Empfohlen: