Procedure sp_usrheadblocker

05/12/2014

0

Boa tarde pessoal,

Hoje eu tive um problema em um cliente. Descobri que existiam 5 processos no sql que estavam usando a mesma tabela e com isso estavam travando essa tabela.
Acabei matando o processo principal e resolvi o problema. Li em um artigo que a procedure sp_usrheadblocker me mostra qual conexão esta travando minha instrução sql.
Não consegui executar essa procedure nem com usuário sa. Alguém já executou essa procedure?
O retorno do comando, é que o banco não conseguiu encontrar a procedure executada.
Odilon Junior

Odilon Junior

Responder

Posts

05/12/2014

Soeuseijothaz

Acho mais recomendado identificar o porque que esta ficando bloqueado.

Acredito que na sua aplicação em algum momento não esta sendo fechada a conexão ou pode esta fazendo lock de registro sem necessidade.

Você deve verificar qual funcionalidade esta sendo usada quando bloqueia a tabela e ver se realmente é necessário o bloqueio.

Se você tiver certeza de que não será necessário o lock, um select por exemplo, pode usar a clausula NOLOCK. Agora cuidado pois se usá-la de forma incorreta pode afetar a integridade do seu bd.
Responder

05/12/2014

Odilon Junior

Acho mais recomendado identificar o porque que esta ficando bloqueado.

Acredito que na sua aplicação em algum momento não esta sendo fechada a conexão ou pode esta fazendo lock de registro sem necessidade.

Você deve verificar qual funcionalidade esta sendo usada quando bloqueia a tabela e ver se realmente é necessário o bloqueio.

Se você tiver certeza de que não será necessário o lock, um select por exemplo, pode usar a clausula NOLOCK. Agora cuidado pois se usá-la de forma incorreta pode afetar a integridade do seu bd.



Eu vi que os processos eram 4 selects e 1 delete. Consegui inclusive ver esses comandos.
Eu ja havia rodado o mesmo select usando o nolock e o retorno mostrava o que era esperado.
Na verdade eu queria ver o retorno dessa procedure. Você já a executou Jothaz ??
Responder

06/12/2014

Rafael Souza

 select *  
  from tabela (WITH NOLOCK)

// Se travar a tabela, da uma olhada no teu código e verifica se não há nenhuma redundância ou 
// se a procedure esta trabalhando com tabelas temporárias ou
// verifica as tabelas relacionadas etc..
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar