deadlocks - entendimento

Modelagem

15/04/2013

acabei de fazer uma leitura sobre deadlock, achei meio confusa(talvez devesse ler mais vezes), mas alguem poderia me dar um exemplo pratico, vivido realmente, o que pode causar esses deadlocks.

obrigada.
Mariana Carvalho

Mariana Carvalho

Curtidas 0

Respostas

Alex Lekao

Alex Lekao

15/04/2013

Ola Mariana, boa tarde!!!

Basicamente, eh como se eu e vc estivéssemos querendo usar recurso bloqueados um pelo outro, e como para se usar um recurso ele precisa ser liberado, então ficamos esperando um pelo outro a liberação do recurso em uso um do outro, acho que ficou meio complicado... rsrsr

eu tenho um recurso bloqueado que estou utilizando e vc tem um recurso bloqueado que esta usando, então eu preciso do recurso que vc esta bloqueando e vc usar o que eu estou bloqueando, neste ponto ficamos um aguardando pelo outro, neste caso dá-se o deadlock.

de uma olhada neste conteúdo que fala sobre deadlock e tratamento dele, acho que vai ajudar no esclarecimento.

http://msdn.microsoft.com/pt-br/library/ms177433(v=sql.105).aspx

Abraco.

Alex - Lekao
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

15/04/2013

certo, mas o que pode causar isso? memoria insuficiente? muitas acesso em um mesmo conjunto de dados...?
GOSTEI 0
Alex Lekao

Alex Lekao

15/04/2013

então, a principio vc tem deadlock para cada tipo de situação, tem o deadlock com relação a memoria, acesso a arquivos etc.

no caso do banco de dados se não em engano o SQL vai trabalhar em cima do controle de concorrência para evitar esse tipo de acontecimento, mas eh praticamente impossível prever e/ou evitar o acontecimento de um deadlock.

Acredito que em alguns casos, memoria e outra situação com relação a parte física ou de configurações podem ajudar a haver maior incidência ou não.

mas o "assunto" deadlock eh muito vasto e de grande complexidade a relação entendimento e ele eh pouco tratado, ou pouco discutido mais a fundo no caso, eu ate hoje não encontrei ninguém para explicar mais efetivamente o que eh um deadlock, praticamente ouvia sempre a mesma coisa, "são dois acessos simultâneos ao um mesmo registro bloqueado, a grosso modo eh isso.", então fica um pouco difícil, honestamente o meu entendimento eh limitadíssimo neste assunto.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

15/04/2013

nesse caso, por exemplo, podemos ter perda de dados ou isso deve ser informado pelo sistema ou pelo proprio para o usuario?
GOSTEI 0
Alex Lekao

Alex Lekao

15/04/2013

Não entendi muito bem o que disse...

mas no caso da perca de dados, pode acontecer, visto que uma das requisições sera finalizada, ou no caso foi escolhida para o deadlock, para este a transaction acabou e todo o processo que era feito ate aquele momento eh descartado e volta para a o estado original, e a outra sessão continuara e terminara o seu processo.

não sei se podemos chamar exatamente de perca de dados, mas todo os dados que estavam sendo informados naquele lote de informações que estariam em cache, digamos assim, sera descartado.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

15/04/2013

Alex, entendi a ideia!!!
Obrigada pela atençao.
GOSTEI 0
Alex Lekao

Alex Lekao

15/04/2013

de nada. rsrsr

Precisando posta ai...

se estiver ao meu alcance, se eu souber tento ajudar.

Abraco.

Alex - Lekao
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

15/04/2013

obrigada!!!
GOSTEI 0
José

José

15/04/2013

Como aparentemente a duvida foi solucionada, estou dando o tópico por concluído.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

15/04/2013

totalmente.
GOSTEI 0
POSTAR