COMO: Utilizar KEEPFIXED PLAN desactivar recompilações do procedimento armazenado

Traduções de Artigos Traduções de Artigos
Artigo: 276220 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Em algumas situações onde os procedimentos armazenados são novamente compilados, o custo de recompilation poderá se sobrepuserem a vantagem deriva fazê-lo. Nota que uma vez que SQL Server Service Pack 2 (SP2) e anteriores não suportam recompilation de nível de instrução, todo o procedimento armazenado tem novamente compilada quando é accionada uma recompilação. Por conseguinte, o número de recompilações accionado durante a execução de um procedimento armazenado e o comprimento do procedimento armazenado, por vezes, pode aumentar a duração geral da execução do procedimento armazenado.

A partir do SQL Server 7.0 SP3, uma nova sugestão de consulta, KEEPFIXED PLAN , foi introduzida para o ajudar em situações em que o custo de recompilation é mais do que o custo de usar o plano existente.

A dica de consulta KEEPFIXED planear força o Optimizador de consultas para recompilar nunca uma consulta devido a alterações nas estatísticas ou de coluna indexada alterações (por exemplo, actualização, eliminar ou inserir). Para obter informações adicionais sobre como resolver recompilation do procedimento armazenado, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
243586INF: Resolução de problemas Recompilation do procedimento armazenado

Código de exemplo que utiliza KEEPFIXED PLAN sugestões

O código de exemplo nesta secção é a partir do seguinte artigo da base de dados de conhecimento da Microsoft:
243586INF: Resolução de problemas Recompilation do procedimento armazenado
   drop procedure RowModifications 
   go
   create procedure RowModifications as
   -- assume SomeTable exists with the same definition as #t, 
   -- and has over 1000 rows
   create table  #t (a int )
   select * from  #t
   insert  #t select * from retest
   select count(*) from #t  where a = 37
   --option (keepfixed plan)
   go
   exec RowModifications
   go
   exec RowModifications
   go 
 
				
Para a execução do procedimento RowModifications segunda, o código seguinte faz com que o recompilation:
  select count(*) from #t where a = 37
				
se utilizar este código:
Option (keepfixed plan)
				
nesta consulta, a consulta não faz com que o recompilation novamente:
select count(*) from #t  where a = 37 option (keepfixed plan) 
				
NOTA: esta sugestão de consulta é aplicada ao nível do extracto e não afecta o âmbito do procedimento armazenado inteiros. Se pretender que esta opção para afectam várias instruções num procedimento armazenado, cada instrução tem de implementar a sugestão do SQL Server é aplicar a um comportamento. Esta sugestão não está disponível para o SQL Server 7.0 Service Pack 2 (SP2) ou anterior.

Propriedades

Artigo: 276220 - Última revisão: 19 de julho de 2006 - Revisão: 5.4
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
Palavras-chave: 
kbmt kbhowtomaster kbinfo KB276220 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 276220

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com