Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Shared mode. Long waits may indicate problems with the disk subsystem.
Latches are lightweight, fast methods of managing concurrency on a specific resource.
PAGEIOLATCH_* group of latches are seen in management of data pages.
PAGEIOLATCH_SH is waiting for a latch to be allocated in share (SH) mode so that a page can be read into memory and be available for other sessions to read.
How to reduce this wait
Whilst long waits on
PAGEIOLATCH_* may indicate problems with the disk subsystem, it is important to check against a performance baseline to check:
- Check for large increase in the volume of I/O
- Check for large increases in database time
- Check for large increases in the volume of queries
- Check for changes in execution plans
- Microsoft Docs - sys.dm_os_wait_stats (Transact-SQL)
- sqlperformance.com - Knee-Jerk Wait Statistics : PAGEIOLATCH_SH
- sqlskills.com - PAGEIOLATCH_SH
If this article doesn't have the information you need you can try searching online. Remember, you can contribute suggestions to this page.
- Google Search for sqlserver - PAGEIOLATCH_SH
- Ecosia Search for sqlserver - PAGEIOLATCH_SH
- Bing Search for sqlserver - PAGEIOLATCH_SH