Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodcorporation

Comportamento estranho, será deadlock?

Recommended Posts

Boa Tarde Senhores,

 

Na minha empresa estamos com um problemão para resolver porém não sabemos se realmente é ou não deadlock.

 

Temos um sistema em VB que roda com SQL Server, porém nosso único cliente que possui SQL Server 2012 ao rodar o sistema tem momento que trava o tempo todo, e outro momento que não.

 

Acontece que o sistema quando trava a tela o sistema fica branca, dando aquela mensagem de não respondendo na barra de título, quando vamos tentar dar algum select em alguma tabela, mesmo a menor que seja não conseguimos. A query roda o tempo todo e não terminar, é preciso cancelar o select e ele traz parte dos registros (digo uma tabela que não possui nem 50 registros), porém ao dar o select em outro banco de dados até a tabela mais pesada de todas roda uma beleza, não demorando nem 1 segundo para retorna milhões de registros (tabela de um erp deles).

 

O engraçado que quando derrubamos o suposto causador (como o sistema possui licenças, sao ao todo 6 pa's que podem logar), voltam a funcionar que é uma beleza.

 

O problema é que não conseguimos detectar que momento acontece msm que debugando o problema, e ao que parece que o problema pode ocorrer a vários momentos.

 

O mais engraçado que ja foi usando o sql 2012 enterprise e o sql 2012 ex no cliente apresenta o problema, porém ao testar em outra infraestrutura com sql 2012 ex parece que funciona mais rápido que na propria empresa deles.

 

Sou analista de suporte, não mexe com a programação, gostaria de saber de alguma forma como detectar e realmente descobrir se é deadlock ou não, ou até msm porque isso tá acontecendo.

 

obrigado desde ja.

 

Até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O deadlock em geral estoura, parace que a aplicação ou o BD não estão commitando e o BD fica esperando um sinc point, ou seja a hora em que efetiva as alterações, pode ser um caminhão de coisas mas como a aplicação não trava na outra instância deve ser alguma configuração do outro BD, trabalho de DBA.

 

No Oracle tem uma tabeka de metadados que aponta os locks, talvez o Sql Server tenha algo semelhante, pode ao menos indicar o objeto lockado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

simplesmente a aplicação fica parada, se derrubarmos o cara correto volta tudo funcionando como se nada tive-se acontecido. Realmente estranho.

vou ver se consigo ver se acho os objetos lockados no sql server.

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

rodcorporation,

Você pode utilizar o SQLProfiler para mapear o momento que esta travando sua aplicação.

Como você já sabe qual o SPID que esta dando este congelamento no sistema, pode rodar isso para pegar o que esta sendo executado no momento do congelamento:

"Procedure para identificar o ponto exato de execução de um statement"

http://wp.me/p2R1fI-1j

 

Onde eu trabalho atualmente, temos muitos cliente com este mesmo problema.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi A.jr,

 

ainda não sei onde esta travando, vamos realizar alguns testes hoje e vou deixar o profile rodando.

 

vou criar 2 rastreamentos um para deadlock (eu acho que esse não vai acusar) e outro para saber quais instruções estão rodando para saber o que esta acontecendo.

 

essa sp eu rodando quando ja sei qual a sp que ta trabando? preciso parametrizar para criar? abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu criaria um Rastreamento completo. Deixaria como filtro somente a aplicação que esta tendo problema.

As vezes pode nem ser o banco em si, mas alguma leitura de disco alta, latencia de rede, mas tudo tem que ser devidamente checado.

 

A procedure não precisa de parametrização. O único parametro que utiliza é o SPID da sessão que esta causando o lock.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.