(Republishing, or using this info in a commercial product/website, is prohibited without permission. All other uses are permitted. If in doubt, please ask.)
This latch class is when a thread is waiting for access to the in-memory metadata entry containing a B-tree’s root page ID. EX access is required to change the root page ID, which typically happens when a B-tree becomes a level deeper during heavy insertions into a new index and the existing root page has to split. Every B-tree traversal has to start at the root page, which requires obtaining this latch in SH mode.
(Books Online description: “Used to synchronize access to the root page abstraction of an internal B-tree.”)
Questions/comments on this latch class? Click here to send Paul an email, especially if you have any information to add to this topic.
Added in SQL Server version:
Removed in SQL Server version:
Extended Events latch_class value:
Maps to the HOBT_VIRTUAL_ROOT map_value in sys.dm_xe_map_values.
The map_key value in sys.dm_xe_map_values is 11 in 2008 and 2008 R2, and 5 in 2012 and 2014 RTM. After 2014 RTM, you must check the DMV to get the latest value as some map_key values have changed in later builds.
I have not seen this latch be a noticeable contention point, except temporarily when a new index has been added to a table with a large number of concurrent inserters, as the EX latch will be required occasionally (as described above).
See the LATCH_EX wait type for more information about latches in general and how to troubleshoot them.
Known occurrences in SQL Server (list number matches call stack list):
- Updating the root page ID (in this case, at the end of a bulk load operation)
- Reading the root page ID (in this case, to begin an index traversal to find the insertion point for a new index record)
And many more similar stacks.
Abbreviated call stacks (list number matches known occurrences list):