Dicas SQL Server

SQL Server – Error 1222 lock request time out period exceeded

Error 1222 SQL Server

Saiba como resolver o error 1222 no SQL Server.

O error 1222 no SQL Server ocorre quando o período de tempo de uma requisição excede seu limite. O tempo de lock de uma requisição é configurado em milissegundos, uma query espera outra que está bloqueando algum recurso do SQL Server, então retornará o erro de query time out. O valor padrão do timeout de query é -1 (LOCK TIMEOUT -1).

Para resolver o problema existem alguns passos:
Encontrar qual transação no SQL Server está utilizando recursos que as outras transações estão querendo usar. Se possível use sys.dm_os_waiting_tasks e sys.dm_tran_locks. DMVs do SQL Server.

Se a transação continua bloqueando recursos, mate-a se for possível e apropriado.

Execute a query novamente.
Outras formas de resolver isso são:

Modificando as querys que usam hints (RECOMPILE, MAXDOP).
Execute querys grandes por partes menores.
Verifique a existência de COMMIT em casos de BEGIN TRANSACTION.

SQL Server – Error 1222 lock request time out period exceeded
The following two tabs change content below.

Wesley Mota

DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Latest posts by Wesley Mota (see all)