RTDATA_LIST is recorded when a thread waits for access to the data structure holding performance metrics (RunTimeData) for natively-compiled stored procedures, In-Memory OLTP’s compiled-to-machine-code procedures. Both reporting execution statistics and maintaining the structure (cleanup, new entries) pass through it.
No native procedures, no meaningful RTDATA_LIST.
Is It a Problem?
Usually not, with a version-specific exception: SQL Server 2014 had a known bug (KB 3007050) causing excessive waits on this type when using natively-compiled procedures, fixed in subsequent updates. On a 2014 instance running native procedures with this wait ranking, patch level is the diagnosis.
On later versions, remember statistics collection for native procedures is opt-in (sys.sp_xtp_control_proc_exec_stats and query-level equivalents); enabling detailed collection on a hot native workload naturally warms this structure, a cost you chose for the visibility.
Common Causes
- The 2014 defect on unpatched builds.
- Native procedure execution statistics collection enabled on high-throughput In-Memory OLTP workloads.
What To Do
- On 2014: verify the build against KB 3007050.
- On later versions, balance stats collection granularity against overhead on the hottest native procedures; sample rather than always-on where the workload is extreme.
How To See It
Rank waits with Get-WaitStatistics; relevance requires In-Memory OLTP native procedures in the picture.
If RTDATA_LIST is sitting near the top of your wait stats, these are the next places to look.
- The waits that usually matter, ranked, with what each one is telling you.
- SOS_SCHEDULER_YIELD Wait Type, the closest wait worth investigating when this one is high.
- Performance & Troubleshooting, the scripts and guides for this part of the stack.
Leave a Reply