Operações do SQL Server

Deadlocks no SQL Server: do gráfico à causa raiz

Deadlock é um ciclo em que sessões mantêm recursos necessários umas às outras. O SQL Server encerra uma participante, mas a vítima não é necessariamente a causa.

Deadlocks no SQL Server: do gráfico à causa raiz

Deadlock é um ciclo em que sessões mantêm recursos necessários umas às outras. O SQL Server encerra uma participante, mas a vítima não é necessariamente a causa.

O que medir

Capture o XML com Extended Events. Analise processos, recursos, modos de bloqueio, instruções, transações e vítima, relacionando cada instrução à operação da aplicação.

Abordagem prática

Acesse objetos em ordem consistente, reduza o escopo das transações, melhore acessos quando justificável e implemente novas tentativas limitadas para o erro 1205.

O que evitar

Não use NOLOCK como solução universal, não culpe apenas a vítima e não guarde somente uma imagem do gráfico.

Resultado operacional

A correção duradoura elimina ou encurta o ciclo. Novas tentativas protegem o usuário, mas não substituem a análise da causa.

Checklist de produção

Registre uma linha de base e defina a melhoria esperada. Teste com dados e concorrência representativos. Preserve a configuração ou o plano original, prepare uma reversão, implante em uma janela adequada e acompanhe o próximo pico normal de carga.

Para aplicar esse método a um ambiente SQL Server específico, use o formulário abaixo e informe a versão, o tamanho do banco, o perfil da carga e as evidências já coletadas.

Pergunte sobre este artigo

Tem alguma dúvida sobre este tema?

Conte o que você está avaliando ou onde encontrou dificuldades. Responderemos com uma recomendação prática.

Inquiries are not enabled in this preview.

Fazer uma pergunta sobre este artigo