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.
Reducing SQL Server Locks
Understanding Isolation Levels
Identify the Cause of SQL Server Blocking