ความแตกต่างระหว่าง last_worker_time และ last_elapsed_time ใน DMV sys.dm_exec_query_stats คืออะไร?


11

สิ่งที่เป็นความหมายของlast_worker_timeและlast_elapsed_timeใน DMV sys.dm_exec_query_statsและสิ่งที่แตกต่างมันระหว่างพวกเขา?

เมื่อฉันไฟด้านล่างแบบสอบถาม

    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

ฉันได้รับ reult เช่นด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

ในสิ่งที่ฉันสังเกตเห็นว่าทั้งสองมีค่าเท่ากันหรือเวลาที่ผ่านไปมากกว่าเวลาทำงานฉันอยากจะทำความเข้าใจกับความสำคัญของทั้งสองอย่างดังนั้นมันอาจช่วยฉันในการปรับแต่งการแสดง

คำตอบ:


16

เวลาของผู้ปฏิบัติงานคือเวลาที่งานมีประสิทธิภาพใช้งานตัวกำหนดตารางเวลาและรหัสที่กำลังทำงานอยู่ (เช่นไม่ได้ถูกระงับ) เวลาที่ผ่านไปคือเวลานาฬิกา ในแบบสอบถาม DOP 1 เวลาของคนงานจะเป็นเวลาที่ผ่านไปมากที่สุดน้อยกว่าถ้างานถูกหยุดชั่วคราวในช่วงเวลาใดระหว่างการดำเนินการ (ดังนั้นเวลานาฬิกาจะล่วงหน้า แต่เวลาคนงานไม่ได้) สำหรับ DOP> 1 คนงานจะรวมกันเพื่อให้พวกเขาสามารถเกินเวลาที่ผ่านไปในขณะที่ยังคงถูกระงับ

ความแตกต่างที่สำคัญระหว่างเวลาของผู้ปฏิบัติงานและเวลาที่ผ่านไปนั้นบ่งบอกถึงการปิดกั้นให้พิจารณาผู้ปฏิบัติงาน 682616 กับ 11509766 ที่ผ่านไป: นี่เป็นคำขอที่ถูกบล็อกเป็นเวลา 11 วินาทีเพื่อรอบางสิ่งบางอย่าง


หมายเหตุ: DOP ย่อมาจาก "degree of parallelism"; 1 หมายถึงคิวรีทั้งหมดถูกประมวลผลโดย CPU เดี่ยวมากกว่าหนึ่งหมายความว่างานถูกแบ่งออกเป็นเธรดซึ่งแต่ละ CPU นั้นสามารถรันได้โดยแต่ละซีพียูที่แตกต่างกัน
RDFozz

@RDFozz ขออภัยฉันรู้ว่านี่เป็นเธรดเก่า แค่ต้องการแก้ไขสิ่งที่คุณพูดเล็กน้อย DOP ใช้กับตัวดำเนินการแต่ละตัวในแผนการดำเนินการของแบบสอบถามดังนั้นคุณยังสามารถมีหลายเธรดที่ทำงานต่อแบบสอบถามได้ sqlmag.com/blog/common-misconception-about-maxdop
SpaceGhost440
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.