Deadlocks em updates

Dúvidas, dicas e atualizações sobre o Treinamento Oracle Performance Diagnostics & Tuning.
Post Reply
leonardopedroso

Deadlocks em updates

Post by leonardopedroso » Fri Jul 14, 2017 11:35 am

Portilho, bom dia!
Deadlocks geralmente são comportamentos de uma aplicação ruim e em uma em específico estou tendo muitos deadlocks no periodo da manhã.
Há alguma aconfiguração que posso fazer a nível de banco, tablespace, tabela ou índice para melhorar a contenção para minimizar os deadlocks? Isso seria uma ajuda a aplicação até que o problema de fato fosse resolvido pelo time de dev (só Deus sabe quando).

Se o tamanho do block interfere, nível de isolamento, inittrans, rebuild de índice e adjacencias.

portilho
Site Admin
Posts: 482
Joined: Wed May 29, 2013 8:51 am

Re: Deadlocks em updates

Post by portilho » Tue Jul 18, 2017 7:45 am

Para tentarmos minimizar os Deadlocks, temos que minimizar os Locks.

- Veja se não há um índice BITMAP envolvido.
- Se você tem contenção de ITL (Interested Transaction List), que pode ser vista no AWR na seção "Segments by ITL Waits". Se este é caso, temos as seguintes opções para reduzir a concorrência nos blocos:
a) aumentar o INITRANS dos objetos envolvidos;
b) reduzir o número de linhas nos blocos, reduzindo seu tamanho (movendo-os para uma TABLESPACE com tamanho de bloco menor).
c) reduzir artificialmente o número de linhas nos blocos, aumentando o PCTFREE.

Não acho prudente alterar o nível de isolamento.
Não vejo como REBUILD poderia ajudar nisso - na verdade poderia piorar, pois teríamos menos espaço livre nos blocos, e portanto mais concorrência.

leonardopedroso

Re: Deadlocks em updates

Post by leonardopedroso » Wed Jul 19, 2017 5:58 pm

Obrigado Portilho!

Vou seguir os advices que você passou, analisar o AWR e fazer as alterações. Vou testar e retorno depois de um tempo pra te falar o ocorrido.

Muito obrigado.

portilho
Site Admin
Posts: 482
Joined: Wed May 29, 2013 8:51 am

Re: Deadlocks em updates

Post by portilho » Thu Jul 20, 2017 7:47 am

:-)
Sim, se possível não deixe de avisar sobre alguma mudança.

Post Reply