O SQL Server usa valores de SPID abaixo de 50 para processos de servidor interno, enquanto qualquer valor acima de 51 (inclusive) é atribuído aos processos do usuário.
Neste guia, você entenderá como obter valores de SPID no SQL Server e como você pode matar uma transação usando seu SPID.
SQL Server Show Spid
No SQL Server, existem várias maneiras de obter o SPID dos processos em execução. Este guia analisará o mais comum e fácil de usar.
sp_who (transact-sql)
O SP_WHO é um procedimento auxiliar que permite visualizar informações do usuário, sessões e processos de instância do SQL Server. Usando este procedimento, você pode filtrar informações específicas, como o nome de usuário e o valor SPID.
A sintaxe é como mostrado:
sp_who [[@Loginame =] 'Login' | ID da sessão | 'ATIVO' ]O login refere -se ao SysName que identifica um processo para um login específico.
O ID da sessão é o valor do SPID para um processo específico conectado ao servidor SQL.
Exemplo de uso
Os seguintes comandos mostram como usar o procedimento SP_WHO no SQL Server.
Mostre todos os processos atuais
Para exibir todos os processos atuais, use a consulta como mostrado:
Use mestre;A consulta acima deve retornar as informações com colunas como SPID, ECID, Status, Loginame e mais.
Mostrar processo para um usuário específico
Para obter os processos associados a um usuário específico, podemos especificar o nome de usuário na consulta, como mostrado no exemplo abaixo:
Use mestre;O comando deve retornar as informações do processo sobre o login do conjunto. Um exemplo de saída é como mostrado:
@@ Spid
Outro método que você pode usar para obter o SPID de um processo é usar a função @@ SPID. Esta função de configuração retorna o ID da sessão do processo atual.
Exemplo de uso
O exemplo a seguir mostra como usar o @@ SPID para buscar informações sobre um processo específico.
Selecione @@ Spid como 'ID',A consulta retorna o Spid, Loginame e o nome de usuário. Exemplo de saída é como mostrado:
Monitor de atividade
Você também pode usar um método gráfico para visualizar o valor de ID da sessão para um processo específico. Inicie o MS SQL Server Management Studio e clique com o botão direito do mouse na instância do SQL Server. Monitor de atividade aberta.
Clique na guia Processo para mostrar SPID, Login, bancos de dados e mais informações. As informações exibidas pelo monitor de atividades são mostradas:
SQL Server Kill Spid
Às vezes, você pode encontrar uma instância específica com lento, bloqueando outros processos ou consumindo recursos do sistema. Você pode encerrar o processo usando seu SPID.
O comando Kill Spid permite especificar um valor específico de Spid e encerrar o processo. Depois de ligar para o comando, o SQL Server executará um processo Rollback (Desfazer Alterações); Portanto, pode levar algum tempo para rescindir um processo extenso.
A seguir, mostra a sintaxe do comando Kill Spid:
Mate ID da sessão [com statusonly] | Uow [com statusonly | Comprometimento | Rollback]Exemplo de uso
Passe o valor de ID da sessão para usar o comando Kill Spid (aprenda a obter o valor do SPID acima).
Matar 90;O comando acima deve interromper o processo especificado.
Para obter o progresso da terminação do processo, você pode usar o argumento com Statissonly, como mostrado:
Mate 84 com statusonly;O comando acima deve retornar o progresso como:
MSG 6120, Nível 16, Estado 1, linha 1O exemplo abaixo mostra como rescindir um backup de banco de dados em execução usando o comando Kill Spid.
Comece o backup como:
banco de dados de backup [wideworldimporters]Usando o comando Kill Spid, encerre o processo de backup.
Conclusão
Neste artigo, você aprendeu a trabalhar com os IDs da sessão do SQL Server. Vários métodos para buscar o valor do SPID e encerrar um processo usando o valor do SPID.