Erros

Erro 1222 no SQL Server: "Lock request time out period exceeded"

26 de agosto de 2026 · 4 min de leitura

Mensagem completa: "Lock request time out period exceeded." — Msg 1222, Level 16.

Não é a mesma coisa que deadlock

O erro 1205 (deadlock) acontece quando duas sessões travam um ciclo e uma é escolhida como vítima automaticamente. O 1222 é mais simples: a sessão pediu um lock, esperou mais do que o LOCK_TIMEOUT configurado (via SET LOCK_TIMEOUT, em milissegundos) e desistiu — sem ciclo, sem vítima escolhida pelo motor. Se LOCK_TIMEOUT nunca foi configurado explicitamente, o padrão é esperar indefinidamente (-1), então esse erro só aparece quando alguém setou um limite.

Onde investigar

SELECT
  r.session_id, r.blocking_session_id, r.wait_type, r.wait_time
FROM sys.dm_exec_requests r
WHERE r.blocking_session_id <> 0
ORDER BY r.wait_time DESC;

Se a sessão que recebeu o 1222 aparece bloqueada por outra na consulta acima, o próximo passo é o mesmo de qualquer blocking: achar a sessão raiz e entender por que ela está segurando o lock.

Causas mais comuns

  • LOCK_TIMEOUT configurado baixo demais pra uma operação que legitimamente compete por lock em horário de pico.
  • Sessão bloqueadora com transação longa aberta (mesma causa raiz de blocking comum).
  • Aplicação usando LOCK_TIMEOUT como substituto de retry — mascarando um problema de contenção que devia ser resolvido, não só tolerado.
Guia completo: Bloqueios (blocking) — causas e como resolver →

Artigos relacionados

Monitore seu SQL Server enquanto aprende.

30 dias grátis para aplicar tudo que você aprendeu aqui no seu próprio ambiente.

Começar gratuitamente
codeDB

Monitoramento inteligente de SQL Server com agente local seguro e diagnósticos em tempo real.

Produto

RecursosPreçosComparativoscodeDB Lens (grátis)

© 2026 codeDB. Todos os direitos reservados.

Powered by codeDB

codeDB Informática Ltda — CNPJ 18.953.756/0001-10 — Florianópolis/SC