DMV sys.dm_exec_query_stats에서 last_worker_time과 last_elapsed_time의 차이점은 무엇입니까?


11

DMV sys.dm_exec_query_stats 에서 last_worker_timelast_elapsed_time의 의미는 무엇 이고 그 차이점 은 무엇입니까?

검색어 아래에서 발사 할 때

    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

나는 아래와 같이 결과를 얻습니다.

여기에 이미지 설명을 입력하십시오

내가 주목 한 것은 둘 다 같거나 경과 시간이 작업자 시간보다 컸다는 것입니다. 둘 다의 중요성을 이해하고 싶습니다. 따라서 성능 조정에 도움이 될 수도 있습니다.

답변:


16

작업자 시간은 작업이 효과적으로 활성화되어 스케줄러를 점유하고 코드를 실행하는 시간입니다 (즉, 일시 중단되지 않음). 경과 시간은 시계 시간입니다. DOP 1 쿼리에서 작업자 시간은 최대 경과 시간이되며, 실행 중 작업이 일시 중단 된 경우 시간이 줄어 듭니다 (따라서 시계 시간은 증가하지만 작업자 시간은 그렇지 않음). DOP> 1의 경우 작업자 시간이 집계되어 경과 시간을 초과 할 수는 있지만 여전히 정지 상태가됩니다.

작업자 시간과 경과 시간의 중요한 차이는 차단을 나타내는 것입니다.


참고 : DOP는 "병렬도"를 나타냅니다. 1은 전체 쿼리가 단일 CPU에 의해 처리됨을 의미하며, 둘 이상의 작업이 스레드로 나뉘어져 있으며 각각이 다른 CPU에 의해 실행될 수 있음을 의미합니다.
RDFozz

@RDFozz 죄송합니다, 이것이 오래된 스레드라는 것을 알고 있습니다. 당신이 말한 것을 약간 수정하고 싶었습니다. DOP는 쿼리 실행 계획의 각 연산자에 적용되므로 연산자가 아닌 쿼리마다 여러 스레드를 계속 실행할 수 있습니다. sqlmag.com/blog/common-misconception-about-maxdop
SpaceGhost440
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.