sp_recompile (Transact-SQL)

 

Causa la ricompilazione di stored procedure, trigger e funzioni definite dall'utente alla successiva esecuzione degli stessi. Ciò avviene tramite l'eliminazione del piano esistente dalla cache delle procedure e la creazione forzata di un nuovo piano alla successiva esecuzione della stored procedure o del trigger. In una raccolta SQL Server Profiler, viene registrato l'evento SP:CacheInsert anziché l'evento SP:Recompile.

Si applica a: SQL Server (da SQL Server 2008 fino alla versione corrente), Database SQL di Azure.

Topic link icon Convenzioni della sintassi Transact-SQL

  
sp_recompile [ @objname = ] 'object'  

[ @objname= ] 'object'
Nome qualificato o non qualificato di una stored procedure, un trigger, una tabella, una vista o una funzione definita dall'utente nel database corrente. object è di tipo nvarchar(776) e non prevede alcun valore predefinito. Se object corrisponde al nome di una stored procedure, un trigger o una funzione definita dall'utente, tale stored procedure, trigger o funzione definita dall'utente verrà ricompilato alla successiva esecuzione. Se object corrisponde al nome di una tabella o una vista, tutte le stored procedure, i trigger o le funzioni definite dall'utente che fanno riferimento alla tabella o alla vista verranno ricompilati alla successiva esecuzione.

0 (esito positivo) o un numero diverso da zero (esito negativo)

sp_recompile
esegue la ricerca di un oggetto solo nel database corrente.

Le query usate da stored procedure, trigger e funzioni definite dall'utente vengono ottimizzate solo in fase di compilazione. Poiché le indicizzazioni o le altre modifiche che hanno effetto sulle statistiche vengono effettuate nel database, il livello di efficienza di stored procedure, trigger e funzioni definite dall'utente dopo la compilazione potrebbe risultare minore. Tramite la ricompilazione delle stored procedure e dei trigger che modificano una tabella, è possibile riottimizzare le query.

System_CAPS_ICON_note.jpg Nota


In SQL Server le stored procedure, i trigger e le funzioni definite dall'utente vengono ricompilati automaticamente quando la ricompilazione risulta un'operazione vantaggiosa.

È richiesta l'autorizzazione ALTER per l'oggetto specificato.

Nell'esempio seguente viene definita la ricompilazione delle stored procedure, dei trigger e delle funzioni definite dall'utente che modificano la tabella Customer alla loro successiva esecuzione.

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

CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
Stored procedure di sistema (Transact-SQL)

Aggiunte alla community

Mostra: