(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 wait type is when a thread is waiting for the read of a data file page from disk to complete, and the thread is going to modify the page structure once it is in memory (EX = EXclusive mode). The Latches Whitepaper in the sidebar on the right has a description of all latch modes and their compatibility with other latch modes.
(Books Online description: “Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Exclusive mode. Long waits may indicate problems with the disk subsystem.”)
Questions/comments on this wait type? 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 wait_type value:
The map_key value in sys.dm_xe_map_values is 68 in all versions through 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.
See the PAGEIOLATCH_SH wait type for more details.
Known occurrences in SQL Server (list number matches call stack list):
- Reading a page from disk so that ghost records can be removed from it
- Reading a page from disk so a row can be inserted on it (in this case, a row being inserted into a system table as part of creating a table)
- Reading a file header page from disk before changing it (in this case, as part of growing a file to allow a new extent to be allocated during a bulk load of data into a heap)
And many more similar stacks where rows are being inserted, updated, or deleted.
Abbreviated call stacks (list number matches known occurrences list):