qual è la differenza tra last_worker_time e last_elapsed_time in DMV sys.dm_exec_query_stats?


11

qual è il significato di last_worker_time e last_elapsed_time in DMV sys.dm_exec_query_stats e qual è la differenza tra di loro?

quando sparo sotto query

    SELECT TOP 20 
qs.last_worker_time, qs.last_worker_time/1000000 last_worker_time_in_S,
qs.last_elapsed_time, qs.last_elapsed_time/1000000 last_elapsed_time_in_S
FROM sys.dm_exec_query_stats qs
order by qs.last_worker_time desc

Ricevo reult come di seguito.

inserisci qui la descrizione dell'immagine

Una cosa che noto è che entrambi sono uguali o che il tempo trascorso è maggiore del tempo di lavoro. Vorrei capire il significato di entrambi, quindi potrebbe anche aiutarmi a ottimizzare le prestazioni.

Risposte:


16

Il tempo di lavoro è il tempo in cui l'attività è stata effettivamente attiva, occupando uno scheduler ed eseguendo il codice (cioè non sospeso). Il tempo trascorso è l'ora. Su una query DOP 1 il tempo di lavoro sarà al massimo il tempo trascorso, meno se l'attività è stata sospesa in qualsiasi momento durante l'esecuzione (quindi il tempo di clock avanzerebbe, ma il tempo di lavoratore no). Per DOP> 1 i tempi di lavoro si aggregano in modo da poter superare il tempo trascorso, pur rimanendo soggetti a sospensione.

Una differenza significativa tra il tempo di lavoro e il tempo trascorso è indicativa di blocco, considera il lavoratore 682616 rispetto a 11509766 trascorso: questa è una richiesta che è stata bloccata per 11 secondi in attesa di qualcosa (probabilmente un lucchetto).


Nota: DOP sta per "grado di parallelismo"; 1 indica che l'intera query viene elaborata da una singola CPU, più di una indica che il lavoro è diviso in thread, ognuno dei quali può essere eseguito da una CPU diversa.
RDFozz,

@RDFozz Siamo spiacenti, so che questo è un vecchio thread. Volevo solo apportare una leggera correzione a quello che hai detto. Il DOP si applica a ciascun operatore nel piano di esecuzione della query, quindi è possibile avere più thread in esecuzione per query, non solo per operatore. sqlmag.com/blog/common-misconception-about-maxdop
SpaceGhost440
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.