Muitas vezes somos acionados para identificar quais são os processos que estão em nosso banco de dados, o que eles estão fazendo, se existe algum tipo de bloqueio, quem está bloqueando quem, enfim, esse é um tipo de trabalho que não basta você orientar alguém para executar um procedimento, é necessário ter conhecimento de banco de dados para ser feito uma análise do resultado e depois tomar ação correta.
A seguir vocês irão ver um script que exibe todos os itens que citei acima e ao analisar o resultado você poderá identificar o que está acontecendo e a partir daí tomar uma ação precisa.
O Script
Com o script abaixo você poderá identificar quais são os processos no SQL Server que estão ativos neste momento em seu banco de dados.
SELECT
Processo = spid
,Computador = hostname
,Usuario = loginame
,Status = status
,BloqueadoPor = blocked
,TipoComando = cmd
,Aplicativo = program_name
FROM
master..sysprocesses
WHERE
status in ('runnable', 'suspended')
ORDER BY
blocked desc, status, spid
O resultado
Entendendo o resultado:
Processo | Número automático que o SQL Server gera para cada conexão que é aberta no banco de dados. |
Computador | Nome do computador de onde está vindo a conexão. |
Usuário | Nome do usuário que se autenticou nesta conexão. |
Status | Status da conexão, cujos valores possíveis são:
|
BloqueadoPor | Caso esteja ocorrendo bloqueio irá aparecer aqui o número do spid da conexão que está bloqueando esta conexão. |
TipoComando | Aqui é classificado o tipo do último comando que essa conexão executou. |
Aplicativo | Nome do aplicativo de onde está vindo a conexão. |
Após o entendimento do resultado do script você poderá ter mais controle da situação e tomar as ações necessárias para cada caso e administrar melhor seu banco de dados.