QUERY_TASK_ENQUEUE_MUTEX appears to be recorded when a thread involved in certain batch-mode query operations waits for its sibling threads to finish initialising. Batch-mode execution spins up cooperating thread sets, and their startup coordination passes through this mutex.
It keeps company with the HT* family and BPSORT in the batch-mode machinery.
Is It a Problem?
No; it has not been a noticeable contention point. Expect traces on workloads that run batch-mode plans (columnstore analytics, and batch mode on rowstore from SQL Server 2019), proportional to how often such plans start up, and nothing more.
Batch-mode performance stories worth telling live elsewhere: the HT* waits for skew, BPSORT for the sort quirks, memory grants for spills. Thread startup coordination has never been the bottleneck.
Common Causes
- Batch-mode query thread sets initialising on analytics workloads.
What To Do
- Filter it out of wait analysis.
- Investigate batch-mode performance through the plan-level evidence when needed.
How To See It
Rank waits with Get-WaitStatistics; expect background traces on batch-mode workloads.
Part of the SQL Server Wait Types Library.
Related deep dive: CXPACKET and CXCONSUMER Wait Types.
Leave a Reply