Undocumented Wait Types Added in SQL Server 2022

A new wait type is hard to investigate when Microsoft documents only its name. For many wait types added in SQL Server 2022, that is what I found.

A woman DBA with a clipboard looks over a waiting room of small robots.  The robots in front sit under wait type name plates, and the glowing robots at the back have blank name plates.

In the first post in this series, I counted 353 wait types that exist in SQL Server 2022 but not in SQL Server 2019. The previous post covered undocumented DMVs added in SQL Server 2022. The SQL Server 2022 instance is Enterprise, and the SQL Server 2019 instance is Developer, so some inventory differences may be edition-related. This post is about how many of the 2022 wait types I saw have a public description. The current Microsoft Learn page for sys.dm_os_wait_stats gives a description for 9 of those 353 wait types.[1] sys.dm_os_wait_stats is the dynamic management view (DMV) that stores cumulative wait statistics. The page lists 32 as “Internal use only” and does not list 312 at all. I found 5 more described elsewhere in Microsoft documentation, so the count I am carrying forward is 339 undocumented wait types.

For this post, I grouped the 353 names by hand. I started with the first one or two underscore-separated words, then combined related prefixes, such as PWAIT_SYNAPSE_LINK_* and SYNAPSELINK_*.

The largest families

The table uses the documentation status from the 2026-09-26 documentation check. “Described” means the wait type has a useful description on the sys.dm_os_wait_stats page or in another Microsoft documentation article. “Internal only” means the Learn page lists the wait type with only that phrase.

Family New in 2022 Described Internal only Undocumented
FT_IFTS_* 32 0 32 32
Names containing RBIO 22 7 0 15
PWAIT_SYNAPSE* and SYNAPSELINK* 20 0 0 20
EXTERNAL_GOVERNANCE*, WAIT_EXTERNAL_GOVERNANCE*, PURVIEW_POLICY_* 11 0 0 11
XE_* 7 0 0 7
WAIT_GLM* 7 0 0 7
WAIT_SQLSDA* 6 0 0 6
HADR_THROTTLE* 6 1 0 5
PWAIT_TOAD* 5 0 0 5
HTTP_EXTERNAL* 4 1 0 3

Microsoft lists all 32 FT_IFTS_* wait types as internal use only, and the page says they apply to SQL Server 2022 cumulative update (CU) 1 and later.[2] A cumulative update is a package of fixes for a SQL Server version.

The RBIO group (the 22 names that contain RBIO) is the exception I covered in part 1, so I will keep it short here. Azure SQL Database Hyperscale performance guidance documents several RBIO_RG_* wait types, not SQL Server product guidance.[3] The Azure documentation explains some RBIO_RG_* names, but it does not describe most of the RBIO wait types added in SQL Server 2022.

Several large undocumented families have names that resemble SQL Server 2022 feature names.

Documented feature, undocumented wait type

Microsoft documents Azure Synapse Link for SQL as a SQL Server 2022 feature. Microsoft describes it as near real-time analytics over operational data in SQL Server 2022 or Azure SQL Database.[4] The 2022 inventory contains 20 wait types with SYNAPSE, SYNAPSELINK, or PREEMPTIVE_SYNAPSESTREAMING in the name. I could not find any of those wait type names on the sys.dm_os_wait_stats page. I also could not find them in the SQL Server, Azure, or Fabric documentation repositories that I searched.[5]

Microsoft Purview access policies are also in the SQL Server 2022 feature list. The feature list says Purview access policies can apply to a SQL Server instance enrolled in Azure Arc and Microsoft Purview Data Use Management.[6] The server-scoped external policy DMVs have Learn pages. One of those pages notes that not all listed roles may apply to SQL Server.[7] The new wait types with EXTERNAL_GOVERNANCE, WAIT_EXTERNAL_GOVERNANCE, and PURVIEW_POLICY in the name do not have public wait-type descriptions that I could find.

Microsoft documents ledger for SQL Server 2022 and later. The Learn overview says it provides tamper-evidence capabilities in the database.[8] SQL Server 2022 added LEDGER_TRUNCATION and LEDGER_BLOCK_GENERATION wait types. Neither name appeared in the wait-type table or in my repository search.

Microsoft documents S3-compatible object storage for SQL Server 2022 backup and restore.[9] I did not find documentation for the new wait type PWAIT_S3_TEMP_CREDENTIAL in the sources I searched.

Microsoft documents Query Store hints for SQL Server 2022, and Query Store is the feature area named in QDS_MANAGER_INIT.[10] I did not find a public description for that wait type. I also looked for wait type names that pointed directly at parameter sensitive plan optimization, approximate percentile functions, XML compression, and contained availability groups. Microsoft documents those SQL Server 2022 features, but I did not find new 2022 wait type names with the obvious terms PSP, PARAMETER, PERCENTILE, XML, CONTAINED, or CAG.[11]

Six new HADR throttle wait types

The HADR_THROTTLE* family is not new, but it changed. SQL Server 2019 had four HADR_THROTTLE* wait types. SQL Server 2022 has ten. Six are new in the 2022 inventory.

Microsoft documents one of the six new names, HADR_THROTTLE_LOG_RATE_MISMATCHED_SLO, for Azure SQL Database geo-replication. The Learn page says it can indicate transaction log rate throttling on the primary replica because a geo-secondary is behind.[12] The other five new HADR_THROTTLE* wait types in this inventory did not have descriptions in my documentation check.

I do not explain GLM, TOAD, or FIDO in this post. I did not find a public source that defines those names, so I will not infer their meaning for production troubleshooting. The next post covers the sp_fido_* procedures, but it still will not define the name unless I find a source.

What an idle 2025 test instance showed

I also queried an idle SQL Server 2025 CU9 test instance. The 2025 instance is Enterprise Developer. I used the exact 339-name undocumented list from the 2022 inventory and joined it to sys.dm_os_wait_stats. Five of those wait types had a non-zero waiting_tasks_count on that idle test instance:

A non-zero count does not show that any of these wait types affected the instance. The result shows that undocumented 2022 wait types can collect counts on a quiet test instance. It does not show that the related features were active.

For routine troubleshooting, start with the larger undocumented families instead of pasting all 339 names into each query. Then investigate exact names if one appears near the top:

Use this query to find wait families that need more investigation. Do not treat it as a complete list of relevant wait types. The query matches on name patterns, so it can return older wait types too. A matching name also does not prove that the related feature is active.

What 2025 removed again

Four of the 353 wait types that SQL Server 2022 added were gone again by SQL Server 2025 CU9: BATCH_MODE_CONCAT_CHILD_SYNC, COLUMNSTORE_TRANSCODER_CREATE, HADR_LOGCONSUMER_RESET, and MISE_PREFETCH_OPEN_ID_CONFIGURATION. The SQL Server 2025 RTM inventory exists too. RTM is the initial release, with no cumulative updates. This removed count is against CU9 because CU9 is the current 2025 build in this series.

None of the four had a public description in my documentation check. Alert exclusions and dashboards that use undocumented names need review after a SQL Server version change. These four wait types appear in SQL Server 2022 and are absent from the SQL Server 2025 CU9 inventory.

Next in the series: the sp_fido_* procedures in SQL Server 2022.

If one of these wait types appeared in your own monitoring, or if you know of documentation my searches missed, tell me on Bluesky or LinkedIn. I will update the count.

References

  1. sys.dm_os_wait_stats (Transact-SQL) - Microsoft Learn. Source for the wait-type table, the DMV definition, and the FT_IFTS_* internal-use entries. ↩
  2. sys.dm_os_wait_stats (Transact-SQL) - Microsoft Learn. Source for the FT_IFTS_* entries listed as internal use only for SQL Server 2022 CU1 and later. ↩
  3. Performance diagnostics in Hyperscale - Microsoft Learn. Describes several RBIO_RG_* wait types for Azure SQL Database Hyperscale. ↩
  4. What is Azure Synapse Link for SQL? - Microsoft Learn. Describes Azure Synapse Link for SQL and says it applies to SQL Server 2022. ↩
  5. MicrosoftDocs/sql-docs, MicrosoftDocs/azure-docs and MicrosoftDocs/fabric-docs - GitHub. The Markdown source of Microsoft Learn. I searched it with whole-word, fixed-string git grep on 2026-09-26, and found no matches for the named wait types. ↩
  6. What’s New in SQL Server 2022 - Microsoft Learn. Lists SQL Server 2022 feature areas, including Microsoft Purview integration, Query Store hints, parameter sensitive plan optimization, object storage, contained availability groups, and other features checked against wait-type names. ↩
  7. sys.dm_server_external_policy_roles (Transact-SQL) - Microsoft Learn. Documents one server-scoped external policy DMV and includes the note about role applicability to SQL Server. ↩
  8. Ledger Overview - Microsoft Learn. Documents ledger for SQL Server 2022 and later. ↩
  9. SQL Server back up to URL for S3-compatible object storage - Microsoft Learn. Documents S3-compatible object storage support for SQL Server 2022 and later. ↩
  10. Query Store Hints - Microsoft Learn. Documents Query Store hints for SQL Server 2022 and later. ↩
  11. What’s New in SQL Server 2022 - Microsoft Learn. Source for the named SQL Server 2022 features that I checked against obvious wait type terms. ↩
  12. Active Geo-Replication - Microsoft Learn. Mentions HADR_THROTTLE_LOG_RATE_MISMATCHED_SLO for Azure SQL Database geo-replication. ↩