Diagnóstico de Deadlocks e Contenção de Locks

Reconstrua o ciclo de locks a partir do deadlock graph e corrija a ordem ou o índice por trás dele.

Por Os Melhores Prompts

Categoria: Bancos de dados

O que ele faz

Reconstrói a ordem exata de aquisição de locks de cada participante a partir da evidência do próprio engine — deadlock XML e extended events do SQL Server, log de deadlock detected do Postgres com detalhe de processo, LATEST DETECTED DEADLOCK do InnoDB, trace files do Oracle — nomeando o recurso e o modo de lock, não apenas o comando. Separa deadlock de lock wait timeout, de cadeia de bloqueio e de lock escalation, e procura gap locks ou next-key locks tomados em linhas que a query nunca retornou, casos em que a causa real é um índice faltando e um retry loop não é correção.

Use quando

O que você recebe

Como usar

  1. Cole a evidência bruta em {{deadlock_evidence}} — deadlock graph XML, a seção de deadlock do SHOW ENGINE INNODB STATUS ou a entrada de log do Postgres com detalhe de processo — e não um resumo, porque resumos removem os modos de lock e os nomes de índice que identificam gap lock.
  2. Coloque todos os comandos em ordem, os limites da transação, hints de lock e onde a aplicação faz commit em {{transaction_code}}, e diga se há alguma chamada de rede com a transação aberta.
  3. Preencha {{schema_and_indexes}} com DDL, índices, contagem de linhas e seletividade dos predicados das tabelas envolvidas.
  4. Informe em {{database_engine}} o engine, a versão e o nível de isolamento padrão, e em {{workload_pattern}} a concorrência, jobs em lote sobrepostos ao OLTP, comportamento de retry, ORM e tamanho do pool.
  5. Aplique as correções na ordem dada — ordem de lock e índice antes de qualquer mudança de isolamento — e acompanhe a taxa de deadlock contra o alvo indicado.

Tags: deadlock, locking, concurrency, sqlserver, postgres, innodb, isolation-levels

Preço: 10.00 BRL