Procedura: Utilizzo KEEPFIXED PLAN per disattivare ricompilazioni di stored procedure

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 276220
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
In alcune situazioni in cui vengono ricompilate stored procedure, il costo della ricompilazione potrebbe superano il vantaggio che deriva da questa operazione. Nota Poiché SQL Server Service Pack 2 (SP2) e versioni precedenti non supportano la ricompilazione di livello di istruzione, l'intera stored procedure dovrà essere ricompilata quando viene attivata una ricompilazione. Pertanto, il numero di ricompilazioni che vengono attivate durante l'esecuzione di una stored procedure e la lunghezza della stored procedure può talvolta aumentare la durata complessiva dell'esecuzione di stored procedure.

A partire da SQL Server 7.0 SP3, è stato introdotto un nuovo suggerimento di query, KEEPFIXED PLAN , consente in situazioni in cui il costo della ricompilazione è più il costo dell'utilizzo il piano esistente.

L'hint di query KEEPFIXED PLAN impone a query optimizer non ricompilare una query a causa di modifiche della colonna indicizzata (ad esempio, aggiornamento, eliminazione o inserimento) o modifiche nelle statistiche. Per ulteriori informazioni sulla risoluzione di ricompilazione delle stored procedure, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
243586INF: Troubleshooting ricompilazione delle stored procedure
back to the top

Codice di esempio che utilizza parametri KEEPFIXED PLAN

Il codice di esempio in questa sezione è dal seguente articolo della Microsoft Knowledge Base:
243586INF: Troubleshooting ricompilazione delle stored procedure
   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  				
Per la seconda esecuzione della procedura RowModifications , il codice riportato di seguito causa la ricompilazione:
  select count(*) from #t where a = 37				
se si utilizza questo codice:
Option (keepfixed plan)				
in questa query, la query non causa la ricompilazione nuovamente:
select count(*) from #t  where a = 37 option (keepfixed plan) 				
Nota questo hint di query viene applicato a livello di istruzione e non influisce sull'ambito dell'intera stored procedure. Se si desidera che questa opzione per applicare più istruzioni in una stored procedure, l'hint per l'applicazione di SQL Server a un comportamento è necessario implementare anche ogni istruzione. Questo hint non è disponibile per SQL Server 7.0 Service Pack 2 (SP2) o versioni precedenti.back to the top

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 276220 - Ultima revisione: 12/05/2015 22:10:12 - Revisione: 5.4

Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition

  • kbnosurvey kbarchive kbmt kbhowtomaster kbinfo KB276220 KbMtit
Feedback