I Could Not Find Documentation for Most of What SQL Server 2025 Added

A new wait type appears near the top of sys.dm_os_wait_stats after you patch a test instance to SQL Server 2025. You search the Microsoft Learn page for that dynamic management view (DMV), and it isn’t there. My inventory found 135 wait types added in SQL Server 2025. 128 of them aren’t listed on the Learn page for the wait statistics DMV, and my documentation search didn’t find them anywhere else.[1]

A woman DBA on a library ladder holds a thin guidebook and looks up at high shelves of books with blank spines, some of them glowing.

This is the first of the posts on SQL Server 2025. It uses the same inventory and documentation method as the first post in this series. This time, I compared SQL Server 2022 CU25 with SQL Server 2025 CU9.

SQL Server 2025 CU9 added 49 system views and functions, 110 system stored procedures and 135 wait types. I couldn’t find documentation for 258 of those 294 items, or 87.8%.

The short method recap

I inventoried each instance over the Dedicated Admin Connection (DAC), a special connection for administrative access. A normal connection returns NULL for most shipped system module definitions. The 2022 instance was SQL Server 2022 CU25, build 16.0.4262.2, Enterprise Edition. The 2025 instance was SQL Server 2025 CU9, build 17.0.5005.3, Enterprise Developer Edition. Cumulative update (CU) means a servicing release after the base product version. Release to manufacturing (RTM) means the initial release before later updates.

For views, functions and procedures, I used the same three documentation layers as the 2022 count. I tried direct Microsoft Learn URL probes under the four system object folders. I also used the Learn search API with title matching, and whole-word git grep against the SQL Server, Azure and Fabric documentation source repositories.[2] I kept the same borderline rules too. A one-line usage mention counts as documented. A name that appears only in an error message does not.

For wait types, I used the classification file built from the sys.dm_os_wait_stats page and then searched the three documentation repositories for mentions elsewhere. I excluded the sys.dm_os_wait_stats page from that second search. Otherwise, a wait type could count twice because it appeared in the page I already parsed.

I also sanity-checked the method against documented objects that are new in the 2025 inventory. It found sys.vector_indexes, sys.json_indexes and sys.json_index_paths. It also found sys.fn_get_audit_file_v2 and sys.dm_os_memory_health_history through Learn pages, Learn search, or the documentation source repositories.[3][4][5]

The count

Object type New in 2025 Undocumented Share
System views and functions 49 38 77.6%
System stored procedures 110 92 83.6%
Wait types 135 128 94.8%
Total 294 258 87.8%

The equivalent 2022 count was 477 undocumented items out of 558, or 85.5%. By group, 2022 had 45 undocumented views and functions out of 80. It also had 93 undocumented procedures out of 125, and 339 undocumented wait types out of 353. The 2025 set is smaller, but the undocumented share is a little higher.

The wait type pattern stayed familiar. The 2025 instance added 135 wait types compared with the 2022 instance. Seven have a description on the sys.dm_os_wait_stats page, and 128 weren’t listed there. The optimized locking article mentions the three described LCK_M_S_XACT* wait types.[6] My repository search didn’t find any other 2025 wait type outside the wait statistics page.

One detail depends on the patch level. This post counts SQL Server 2025 CU9. In the RTM inventory, 15 of the counted system objects weren’t present yet, and one counted wait type wasn’t present yet. Most of those CU9-only system objects are change event stream procedures and views.

A few names worth coming back to

I don’t want to turn the opener into a list of 258 names. These are the groups I want to investigate first.

Configuration options are next. SQL Server 2025 added 10 configuration options in this inventory. The names include external AI runtimes enabled, external rest endpoint enabled, allow server scoped db credentials, tiered memory enabled, and max lock manager cache memory (%). The next post goes through those options one by one.

None of the ten automatic tuning procedures is documented. SQL Server 2025 added ten procedures with names that start with sp_auto_tuning_. I couldn’t find documentation for any of them. Their names point toward automatic tuning workflow and index recommendation work, but the names alone don’t define their behaviour.

Columnstore transcoder wait types form a large undocumented family. I found 25 new wait types with COLUMNSTORE_TRANSCODER or COLUMNSTORE_ASYNC_TRANSCODING in the name. None appeared on the wait statistics page, and the repository search didn’t find another documentation mention. The names suggest columnstore work, but I haven’t tied them to a public feature contract.

Two lock wait types stand out. LCK_M_SCH_A and LCK_M_SCH_C are new in the 2025 inventory. I couldn’t find them on the wait statistics page or elsewhere in the three documentation repositories. Their names are similar to documented optimized locking wait types such as LCK_M_S_XACT, but similar names are not documentation.

What I take from this count

The 2025 result doesn’t mean that SQL Server 2025 is unusable, or that every undocumented item is something a DBA needs to learn. Some names look internal. Some are for features that might only appear under conditions I didn’t test. Some are documented for Azure SQL Database, Fabric, or related services, while also appearing in the boxed SQL Server catalog.

In these inventories, the new names outnumber the reference entries I found. If you alert on wait statistics, SQL Server 2025 gives you more names that Microsoft may not have explained. The same applies if you query catalog views or use scripts that enumerate system procedures.

Next, I’m looking at undocumented configuration options in SQL Server 2025.

Have you seen one of these objects in your own monitoring, or do you know of documentation my searches missed? Tell me on Bluesky or LinkedIn, and I’ll update the count.

References

  1. sys.dm_os_wait_stats (Transact-SQL) - Microsoft Learn. The wait type table used for the wait type documentation classification in this post. ↩
  2. MicrosoftDocs/sql-docs, MicrosoftDocs/azure-docs and MicrosoftDocs/fabric-docs - GitHub. The Markdown source of Microsoft Learn for SQL Server, Azure and Fabric, searched with whole-word, fixed-string git grep on 2026-09-26. The search results are my own. ↩
  3. sys.vector_indexes (Transact-SQL), sys.json_indexes (Transact-SQL) and sys.json_index_paths (Transact-SQL) - Microsoft Learn. Examples of documented catalog views that are new in the 2025 inventory. ↩
  4. sys.fn_get_audit_file_v2 (Transact-SQL) - Microsoft Learn. Example of a documented function that is new in the 2025 inventory. ↩
  5. sys.dm_os_memory_health_history - Microsoft Learn. Example of a documented DMV that appears in the 2025 inventory and is documented for Azure SQL Database and Azure SQL Managed Instance. ↩
  6. Optimized locking - Microsoft Learn. Mentions LCK_M_S_XACT, LCK_M_S_XACT_READ and LCK_M_S_XACT_MODIFY, but not LCK_M_SCH_A or LCK_M_SCH_C. ↩