Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Misurazione delle prestazioni delle query:costo delle query del piano di esecuzione rispetto al tempo impiegato

La traccia del profiler lo mette in prospettiva.

  • Query A:1,3 secondi di CPU, 1,4 secondi di durata
  • Query B:2,3 secondi di CPU, 1,2 secondi di durata

La query B utilizza il parallelismo:CPU> durataeg ​​la query utilizza 2 CPU, in media 1,15 secondi ciascuna

La query A probabilmente non è:CPU

Questo spiega il costo relativo al batch:17% per il piano di query più semplice e non parallelo.

L'ottimizzatore scopre che la query B è più costosa e trarrà vantaggio dal parallelismo, anche se richiede uno sforzo maggiore per farlo.

Ricorda però che la query B utilizza il 100% di 2 CPU (quindi il 50% per 4 CPU) per un secondo circa. La query A utilizza il 100% di una singola CPU per 1,5 secondi.

Il picco per la query A è più basso, a scapito di una maggiore durata. Con un utente, chi se ne frega? Con 100 forse fa la differenza...