XTP_PREEMPTIVE_TASK appears to be a generic wait for background worker threads involved in In-Memory OLTP processing, running preemptively, so the thread stays under Windows control (state RUNNING) until its work completes. Documentation labels it internal use only.
It is the XTP family’s catch-all background wait.
Is It a Problem?
Normally no; it accumulates as XTP background machinery hums, and it is filtered as benign. One anecdotal edge case is worth recording: this wait has been reported becoming a bottleneck in connection with the Telemetry Extended Events session (the usage-data session Microsoft ships enabled). Environments that hit unexplained prominence of this wait have found relief examining or disabling that session per Microsoft guidance.
Outside that, there is nothing to act on.
Common Causes
- Normal In-Memory OLTP background processing on databases with memory-optimized objects.
- The Telemetry XE session interaction, in the reported edge case.
What To Do
- Filter it in routine analysis.
- If it inexplicably ranks high, check the state of the telemetry-related XE sessions and current Microsoft guidance on them.
- Investigate XTP health, when needed, through the feature’s own DMVs rather than this wait.
How To See It
Rank waits with Get-WaitStatistics, where it is filtered as XTP background noise.
Part of the SQL Server Wait Types Library.
Related deep dive: WRITELOG Wait Type.
Leave a Reply