Freigeben über


sp_recompile (Transact-SQL)

Bewirkt, dass gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen beim nächsten Ausführen erneut kompiliert werden. Dazu wird der vorhandene Plan aus dem Prozedurcache gelöscht, sodass beim nächsten Ausführen der Prozedur oder des Triggers das Erstellen eines neuen Plans erzwungen wird. In einer SQL Server Profiler-Auflistung wird das Ereignis SP:CacheInsert anstelle des Ereignisses SP:Recompile protokolliert.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

sp_recompile [ @objname = ] 'object'

Argumente

  • [ @objname= ] 'object'
    Der qualifizierte oder nicht qualifizierte Name einer gespeicherten Prozedur, eines Triggers, einer Tabelle, einer Sicht oder einer benutzerdefinierten Funktion in der aktuellen Datenbank. object ist vom Datentyp nvarchar(776) und hat keinen Standardwert. Wenn object der Name einer gespeicherten Prozedur, eines Triggers oder einer benutzerdefinierten Funktion ist, werden diese beim nächsten Ausführen erneut kompiliert. Wenn object der Name einer Tabelle, einer Sicht oder einer benutzerdefinierten Funktion ist, werden alle gespeicherten Prozeduren oder Trigger, die auf diese Tabelle oder Sicht verweisen, beim nächsten Ausführen erneut kompiliert.

Rückgabecodewerte

0 (Erfolg) oder eine Zahl ungleich Null (Fehler)

Hinweise

sp_recompile sucht nur in der aktuellen Datenbank nach einem Objekt.

Die Abfragen, die von gespeicherten Prozeduren, Triggern oder benutzerdefinierten Funktionen durchgeführt werden, werden nur bei der Prozedur- oder Triggerkompilierung optimiert. Wenn Sie Indizes bearbeiten oder andere Änderungen an der Datenbank vornehmen, die sich auf Statistiken beziehen, kann dies die Effizienz von gespeicherten Prozeduren, Triggern oder benutzerdefinierten Funktionen beeinträchtigen. Durch das erneute Kompilieren der gespeicherten Prozeduren, Trigger und benutzerdefinierten Funktionen, die auf eine Tabelle zugreifen, können solche Abfragen wieder optimiert werden.

HinweisHinweis

SQL Server kompiliert gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen automatisch neu, wenn dies von Vorteil ist.

Berechtigungen

Erfordert die ALTER-Berechtigung für das angegebene Objekt.

Beispiele

Im folgenden Beispiel werden gespeicherte Prozeduren, Trigger und benutzerdefinierten Funktionen, die auf die Customer-Tabelle zugreifen, beim nächsten Ausführen erneut kompiliert.

USE AdventureWorks2012;
GO
EXEC sp_recompile N'Sales.Customer';
GO

Siehe auch

Verweis

CREATE PROCEDURE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

Gespeicherte Systemprozeduren (Transact-SQL)