Início > Não categorizado > Fabiano vs DeadLock Paralelism

Fabiano vs DeadLock Paralelism

Galera, espero que este post sirva como ajuda para quem vai para o google a procura de uma resposta…

Pergunta, pode ocorrer um erro de deadlock em um select ?

Resposta: Sim. Um deadklock ocorre quando uma sessão esta esperando para acessar um determinado recurso que esta sendo utilizado por outra sessão. Estes recursos podem ser locks, paralelismo, sessões em espera, ou uma combinação destes itens.

Meu problema foi justamente este de paralelismo, eu tenho uma consulta que estava utilizando paralelismo e as vezes ela apresentava o seguinte erro:

Transaction (Process ID 55) was deadlocked on thread | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

Repare no item em negrito e veja que o recurso que esta sendo acessado é esse tal de “communication buffer” que é o que? Paralelismo.

Resumo da ópera, como não sou DBA do ambiente e não posso mexer e nem ver a cor do servidor onde o SQL está instalado, tive que apelar para um OPTION(MAXPDOP 1) na minha proc. Desta forma evito o paralelismo e por consequencia o deadlock.

Abraços

Anúncios
Categorias:Não categorizado
  1. Laerte
    8 de fevereiro de 2010 às 16:02

    Oqueeeeeeeeee..meu amigo Fabiano usando MaxDop uhuuuuuuu !!!! É isso ai velhina..Abraços !!!

  2. Luciano
    9 de fevereiro de 2010 às 9:49

    Que merda hein? Qual SQL Server?Odeio fazer esses "remendos". Você chegou a identificar os recursos exatos envolvidos no deadlock? As trace flags de monitoração dos deadlocks informam dados sobre os consumers, producers e controller do paralelismo. Fiquei curioso…

  3. Fabiano Neves
    10 de fevereiro de 2010 às 9:24

    Então Luti, Eu tbm não gosto destes remendos… mas como eu disse,, eu não posso nem chegar perto do servidor de banco de dados, pra você ter uma idéia se eu plugar um cabo de rede no meu notebook uma luz vermelha começa a piscar na minha cabeça uma sirene toca e a SWAT entra na sala quebrando os vidros… rsrs,… Mas sei que é um SQL 2005 Enterprise instalado em um ambiente Virtualizado, e é um servidor Compartilhado, ou seja, a cocorrência por CPU deve ser bem grande… 😦

  4. Fernando
    3 de março de 2010 às 0:04

    Fabiano e Luciano…..Nesse caso seria que um indice não resolveria?Pois eu vi no meu ambiente uma consulta que executava parelelismo e no caso a própria tarefa se bloqueava…e o bloqueio era por página…….será que as vezes criando um indice resolveria?Estou supondo……..sobre o maxdop,eu não acho que seja um remendo…..eu usei ele em meu ambiente ja…….mas eu sabia o porque de estar usando…rsrsrsrs….mas no caso o fabiano não pode nem tocar no servidor…..ai vira um remendo…rsrsrrsLaerte,quem diria o Fabiano usando o maxdop…kkkkkkk….Abraços a todos!!!!!

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: