sp_recompile (Transact-SQL)
Faz com que procedimentos armazenados, gatilhos e funções definidas pelo usuário sejam recompilados na próxima execução. Isso é feito com a remoção do plano existente do cache de procedimento que força um novo plano a ser criado na próxima vez que o procedimento ou gatilho é executado. Em uma coleção SQL Server Profiler, o evento SP:CacheInsert é registrado em log em vez do evento SP:Recompile.
Convenções de sintaxe Transact-SQL
Sintaxe
sp_recompile [ @objname = ] 'object'
Argumentos
- [ @objname= ] 'object'
O nome qualificado ou não qualificado de um procedimento armazenado, gatilho, tabela ou função definida pelo usuário no banco de dados atual. object é nvarchar(776), sem padrão. Se object for o nome de um procedimento armazenado, gatilho ou função definida pelo usuário, o procedimento armazenado, gatilho ou função será recompilado na próxima vez em que for executado. Se object for o nome de uma tabela ou exibição, todos os procedimentos armazenados, gatilhos ou funções definidas pelo usuário que fizerem referência à tabela ou exibição serão recompilados na próxima vez em que forem executados.
Valores de código de retorno
0 (êxito) ou um número diferente de zero (falha)
Comentários
sp_recompile procura um objeto apenas no banco de dados atual.
As consultas usadas por procedimentos armazenados, gatilhos e funções definidas pelo usuário são otimizadas somente quando forem compiladas. Como índices ou outras alterações que afetam as estatísticas são feitos no banco de dados, os procedimentos armazenados compilados, os gatilhos e as funções definidas pelo usuário podem perder a eficiência. Recompilando procedimentos armazenados, gatilhos e funções definidas pelo usuário que agem em uma tabela, você pode reotimizar as consultas.
Observação |
---|
SQL Server recompila automaticamente os procedimentos armazenados, os gatilhos e as funções definidas pelo usuário quando for vantajoso. |
Permissões
Requer permissão ALTER no objeto especificado.
Exemplos
O exemplo a seguir faz com que procedimentos armazenados, gatilhos e funções definidas pelo usuário que agem na tabela Customer sejam recompilados da próxima vez que forem executados.
USE AdventureWorks2012;
GO
EXEC sp_recompile N'Sales.Customer';
GO