This wait occurs when a request is waiting to acquire a shared lock. This typically happens when read requests are blocked by write transactions (implicit or explicit) that have been kept open for extended periods of time
DBAs and Developers
- Keep transaction durations short.
- Ensure transactions isolation levels are appropriate (avoid SERIALIZEABLE and REPEATABLE READ if possible).
- Investigate enabling the READ_COMMITTED_SNAPSHOT database setting.
- Run trace/Profiler/Extended Event session in conjunction with Blocked Process Threshold to determine which queries are being blocked.
- Indexing, ensure that long running queries and transactions are optimized.
- Ensure that row, page and table locks are being escalated correctly. If the table is partitioned consider enabling partition escalation.
Consider using ApexSQL Monitor, a Windows and SQL Server monitoring tool able to track SQL Server wait types, including the individual query wait statistics