Cosa misura effettivamente la misurazione della durata nel server sql?


8

Cosa misura esattamente la durata della query quando si esegue una traccia del profiler?

Ho una procedura memorizzata che esegue l'accesso ai dati (SELEZIONA) e ci vogliono in media circa 30 secondi per restituire i risultati all'applicazione. Ma quando eseguo una traccia su di esso ottengo una durata media di circa 8 secondi, durata massima 12 secondi, CPU media 5,5 secondi.

Cosa potrebbe richiedere molto più tempo per restituire il set di risultati? Non sto accumulando grandi attese NETWORKIO. Il set di risultati comprende solo circa 270 righe di semplici dati di testo, per un totale di circa 50 colonne.


4
Ciò non include il tempo impiegato per la consegna e il rendering dei risultati sul client.
Aaron Bertrand

Questo ha senso, ma se ci fosse un grande ritardo (3 volte il tempo di esecuzione per ottenere i risultati resi) non ti aspetteresti di vedere grandi attese NETWORKIO? Il mio ultimo riavvio è stato solo ieri, con NETWORKIO in attesa di 230 secondi in totale (non mi sembra molto per un giorno).
sqlbattsman,

3
Hai provato a eseguire il comando con SET STATISTICS TIME ecc.? Inoltre, se il tempo è impiegato per il rendering, non lo vedresti in rete. Vi sono differenze mostrate se si trasformano tutti i dati nei risultati in testo vs. griglia?
Aaron Bertrand

I risultati del testo non sono significativamente diversi. Ora quando lo
eseguo

Risposte:


1

La durata rappresenta il tempo totale dall'inizio alla fine della richiesta di SQL Server, che rappresenta il tempo di invio in rete, il tempo della CPU, le attese e l'esecuzione. Come menzionato da Aaron una volta che il client ha ricevuto i dati, SQL Server ha terminato i suoi tempi e il client sta quindi elaborando. Questo non dovrebbe far parte della durata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.