LCK_M_U

Description

This wait occurs while a request is waiting to acquire an update lock. An update lock is not just for UPDATE operations. They are used when SQL Server needs to read and then modify a row/page/table. Before modifications it will place an update lock on the data. Once the system is ready these locks will upgraded to exclusive locks. This wait typically occurs while modify requests are blocked by other write transactions (implicit or explicit)

Resolved by

DBAs and Developers

Suggested solutions

  1. Keep transaction durations short
  2. Ensure transactions isolation levels are appropriate (avoid SERIALIZEABLE and REPEATABLE READ if possible)
  3. Investigate enabling the READ_COMMITTED_SNAPSHOT database setting
  4. Run trace/Profiler/Extended Event session in conjunction with Blocked Process Threshold to determine which queries are being blocked
  5. Indexing, ensure that long running queries and transactions are optimized
  6. Ensure that row, page and table locks are being escalated correctly. If the table is partitioned consider enabling partition escalation

Additional research

Reducing SQL Server Locks
Understanding Isolation Levels
Identify the Cause of SQL Server Blocking
Lock Escalations

See more

Consider using ApexSQL Monitor, a Windows and SQL Server monitoring tool able to track SQL Server wait types, including the individual query wait statistics

⇐ Back to index