QDS_DYN_VECTOR is recorded when a thread waits for access to one of Query Store’s thread-safe internal data structures (a dynamic vector, per the name). Query Store’s in-memory machinery is shared across every session whose queries it tracks, so brief synchronisation on its structures is routine.
Marked “internal use only” by the documentation, and it behaves accordingly.
Is It a Problem?
No; it has not been a contention point, and its normal profile is trace amounts on any Query Store-enabled database. It has no specific tuning story of its own; if Query Store synchronisation ever genuinely hurts, the visible symptom tends to be the more specific QDS_STMT (hash map latching on ad hoc workloads), which has a real mitigation.
Treat this one as internal bookkeeping and filter it.
Common Causes
- Normal Query Store in-memory operations across busy workloads.
- Many QS-enabled databases adding their trace amounts together.
What To Do
- Filter it out of wait analysis.
- If Query Store overhead is the genuine question, look at
QDS_STMT, capture mode, and store sizing rather than this wait.
How To See It
Rank waits with Get-WaitStatistics; expect only background traces.
Part of the SQL Server Wait Types Library.
Related deep dive: RESOURCE_SEMAPHORE Wait Type.
Leave a Reply