Ausführung von gespeicherten Prozeduren und Triggern
SQL Server 2005 speichert nur die Quelle für gespeicherte Prozeduren und Trigger. Wenn eine gespeicherte Prozedur oder ein Trigger das erste Mal ausgeführt wird, wird die Quelle zu einem Ausführungsplan kompiliert. Wenn die gespeicherte Prozedur oder der Trigger erneut ausgeführt wird, bevor der Ausführungsplan aus dem Arbeitsspeicher entfernt wurde, erkennt das relationale Modul den vorhandenen Plan und verwendet ihn erneut. Wenn der Plan aus dem Arbeitsspeicher entfernt wurde, wird ein neuer Plan erstellt. Dieser Vorgang ist mit dem Verfahren vergleichbar, das SQL Server 2005 für alle SQL-Anweisungen anwendet. Der wesentliche Leistungsvorteil, den gespeicherte Prozeduren und Trigger in SQL Server 2005 im Vergleich zu Batch- oder dynamischem SQL besitzen, besteht darin, dass ihre SQL-Anweisungen immer identisch sind. Aus diesem Grund können sie durch das relationale Modul auf einfache Weise vorhandenen Ausführungsplänen zugeordnet werden. Pläne für gespeicherte Prozeduren und Trigger können einfach erneut verwendet werden.
In früheren Versionen von SQL Server als SQL Server 7.0 boten gespeicherte Prozeduren einen signifikanten Leistungsvorteil im Vergleich zu anderen SQL-Anweisungen. In diesen Versionen von SQL Server wurde nicht versucht, Ausführungspläne für Batches erneut zu verwenden, wenn es sich bei diesen Batches nicht um gespeicherte Prozeduren oder Trigger handelte. Die einzige Möglichkeit, Ausführungspläne erneut verwenden zu können, bestand darin, die SQL-Anweisungen in Form von gespeicherten Prozeduren zu codieren.
Der Ausführungsplan für gespeicherte Prozeduren und Trigger wird getrennt von dem Ausführungsplan für den Batch ausgeführt, der die gespeicherte Prozedur aufruft oder den Trigger auslöst. Dadurch können die Ausführungspläne für gespeicherte Prozeduren und Trigger mehrmals erneut verwendet werden.
Siehe auch
Konzepte
Architektur des Abfrageprozessors