2009-08-17 9 views
8

Ciao colleghi programmatori. Ho una query di SQL Server 2005 che impiega molto tempo per elaborare la prima volta. Dopo la prima esecuzione la query funziona molto più velocemente. Passa da un minuto a un secondo.SQL Server 2005 Come si elimina un piano di esecuzione della query

So che SQL Server memorizza nella cache un piano di esecuzione (è il termine giusto?). Quello che voglio fare è chiarire questo piano di esecuzione in modo che possa replicare meglio il problema. Sto provando a sintonizzare la query.

Qualcuno sa se questo è possibile e come farlo?

Grazie in anticipo

risposta

16

Se si desidera cancellare allora:

DBCC FreeProcCache 
DBCC DropCleanbuffers 

Se si desidera solo per forzare una ricompilazione query ogni volta, quindi aggiungere un suggerimento query alla fine della query:

OPTION (RECOMPILE) 
1

DBCC FREEPROCCACHE

3

Questo è quello che ho eseguito quando mai voglio CLEA r li

DBCC freeproccache 
DBCC dropcleanbuffers 
go 

Se io sono prestazioni testare una query Io di solito basta incollare che nella parte superiore della query in modo che ogni volta che viene eseguito la sua esecuzione con una cache chiaro.

2

Attenzione: a volte le query vengono eseguite più velocemente la seconda volta perché il server ha già eseguito il disco IO e ha ancora tabelle nella RAM. Considera di considerare i costi di I/O nel piano di esecuzione.

Problemi correlati