Skip to content

SQL Server blocking

Find the transaction holding up your workload.

The problem

Requests queue behind a long transaction while application timeouts grow. The waiting query is often a symptom; the head blocker is the starting point.

Recognise the symptoms

  • Application timeouts during otherwise normal load
  • A chain of requests waiting on locks
  • An idle session with an open transaction

A practical investigation workflow

  1. Capture the blocking chain

    Record blocked sessions, the head blocker, SQL text, wait resources and transaction age before the incident disappears.

  2. Find why locks remain held

    Check transaction scope, application connection handling and the execution plan. An idle session can still own an uncommitted transaction.

  3. Agree a targeted change

    Work with the application owner on shorter transactions, suitable indexes or access patterns. Assess rollback time before terminating a session.

  4. Verify under representative load

    Compare blocking duration, timeout rate and transaction completion after the change.

What success looks like

A documented cause and a measurable reduction in timeouts, rather than a recurring session-kill workaround.

Blocking can be normal. Changing isolation levels or terminating sessions needs workload-specific review.

Microsoft: understand and resolve blocking

Related workflows

SQL Object SearchDiscuss your DBA workflow