Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Deadlock em UPDATE TABLE

$
0
0
Um deadlock ocorre quando A espera por B e B espera por A. Exemplo: a tabela A tem um trigger que faz um update na tabela B e por sua vez a tabela B tem tb um trigger que faz update na tabela A. Ora, neste caso, pode ocorrer um deadlock se o(s) registos estiverem locked, a base de dados vai esperar X tempo e depois opta por matar a transacção. Este é um exemplo de má programação. Deadlocks podem tb ocorrer sem ser por má programação (evidente.. como no exemplo anterior).. pode uma transacção (T1) estar a fazer um lock X e outra transacção (T2) estar a fazer um lock Y. Se T1 necessita de alterar Y vai esperar que Y seja libertado.. mas se T2 necessita de alterar X, vai tb esperar.. e novamente temos um deadlock. É preciso ter atenção a referências circulares para evitar deadlock.. se for uma bd com muitos users em simultâneo.. pior ainda

Viewing all articles
Browse latest Browse all 14700