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
Listagem 1. Script para identificar processos ativos

O resultado

Resultado do script

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:
  • runnable: em execução;
  • suspended: em processo de retorno;
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.