Domanda

Ho una domanda che esegue lentamente. So che in generale a fare prestazioni più veloci, il limite si unisce, e cercare di utilizzare procs invece di query diritte. A causa di regole di business, non posso usare proc. Ho già tagliato il numero di join tanto quanto mi viene in mente.

Qual è il prossimo passo nella messa a punto di query?

È stato utile?

Soluzione

la cosa più semplice da fare è andare a Management Studio eseguire questo comando:

SET SHOWPLAN_ALL ON

quindi eseguire la query vera e propria.

Non si ottiene il vostro normale set di risultati della query. Vi darà il piano di esecuzione (una lista molto dettagliata di ciò che SQL Server fa per trasformare la vostra query) in un set di risultati. Guardare oltre l'uscita e cercare di imparare che cosa significa. Io in genere cerco "SCAN", che è una parte lenta, e cerco riscriverlo in modo che utilizza un indice.

Altri suggerimenti

L'aggiunta di indici è probabilmente il numero uno cosa si può fare per migliorare le prestazioni di query e non si è parlato.

Hai guardato il piano di esecuzione per vedere se che potrebbe essere migliorata con indici aggiuntivi?

Inoltre, è necessario assicurarsi che le vostre domande sono scritte in modo tale che possano usare gli indici che sono presente in modo efficace (per esempio evitare costrutti non sargable, evitare di *)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top