Travamento (Locks do SQL)

07/05/2004

0

Estou com um problema no meu trabalho.

Trabalho em um sistema Delphi que usa SQL Server como banco de dados, conectando via BDE (argh).

Algumas vezes houve um travamento do banco de dados na empresa e eu não sabia dizer o que estava causando isso. Descobri que eram tabelas não-marcadas como CLUSTERED. Resolvi esse problema e a maioria dos travamentos parou (o sistema está, inclusive, implantado).

Porém houve outro travamento depois, e descobri que isso se deu devido a uma transação não completada que ficou esperando uma entrada de dados do usuário para terminar. Essa é a primeira pergunta. Uma transação bloqueia as tabelas modificadas até o Commit? Ou foi outra coisa? Eu tenho certeza de que a transação (pelo menos no Delphi) bloqueia as outras tabelas por que um outro caso parecido aconteceu que eu também tinha corrigido.


Agora o pior de todos. Hoje uma moça em uma máquina da qual eu não atualizei o sistema estava visualizando um relatório e o sistema ficou travado até eu reiniciar o serviço MSSQL. Sendo que esse relatório só manda SELECTS para o banco, e nenhum UPDATE ou INSERT, como pode ter bloqueado o banco (já que a tabela principal do sistema é uma das que ficaram bloqueadas).


Gleyson

Gleyson

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar