LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

SQL Server

Feed da seção SQL Server

Newsletter de SQL Server


Segunda-feira, 24/06/2002 - 01:59 - Por Mauro Pichiliani
Seções relacionadas:

Gerenciando Processos no SQL Server


Galera, esta semana vamos ver um pouco sobre processos no SQL Server.

Processos são uma maneira de visualizarmos a atividade de um servidor SQL Server. Processos são importantes pois é através deles que podemos fazer várias operações cruciais como finalizar uma conexão morta, visualizar locks de objetos, monitorar o progresso de tarefas, etc. Para a galera que trabalha com programação dá para fazer um paralelo entre um processo do SQL Server e uma Thread em um programa cliente/servidor.

Quando um usuário se conecta ao banco de dados (através de qualquer método como o ADO, JDBC, ODBC, etc) um novo ID de processo é criado para aquela conexão de usuário. Porém existem alguns processos internos do SQL Server que não fazem referência a nenhum tipo de conexão. ID's de processo indo de 1 até 50 são internos do SQL Server e valores acima de 50 são relativos a uma conexão de usuário. ID's de processo também são re-utilizáveis.

Para visualizarmos todos os ID de processos atuais no SQL Server assim como algumas propriedades sobre eles, devemos utilizar o Enterprise Manager, escolher o servidor, abrir a pasta Management, clicar no ícone Current Activity e finalmente escolher Process Info. Teremos uma janela similar a esta (painel esquerdo):

Clique na imagem para vê-la em tamanho real

Podemos perceber que várias informações importantes sobre os processos são mostradas: o ID do processo (retornado por @@SPID), o login do usuário no banco, o contexto do banco de dados atual da conexão, Network Address (endereço MAC da placa de rede do client), status do processo, etc.

Também podemos obter a lista de processos atuais no servidor utilizando a Stored Procedure sp_who. Esta Stored procedure consulta a tabela de sistema sysprocesses que está no banco master e ainda nos permite fazer um filtro por login se usuário:

-- Mostra todos os processos que estão sendo executados por um usuário que se logou no banco como sa
exec sp_who 'sa'

Uma vez que sabemos quais os processos, podemos obter qual o ID de processo da nossa conexão e descobrir qual foi o último comando enviado para o servidor por aquele processo:

-- Declara a variável que conterá o ID do processo desta conexão
DECLARE @SP_ID INT

-- Seta a variável
SET @SP_ID = @@SPID

-- Mostra qual o último comando enviado para o servidor pelo processo atual
DBCC INPUTBUFFER (@SP_ID)

Também podemos matar um processo utilizando o comando KILL. O comando KILL mata um processo, derruba a conexão com o cliente e termina qualquer transação pendente desta conexão. Devemos utilizar o comando KILL com cuidado, pois caso contrário os efeitos podem ser bem indesejáveis:

-- Mata a conexão cujo ID é 54
KILL 54

O comando KILL deve ser utilizado em alguns casos em que o processo está 'travado' e ocupando recursos da máquina desnecessários. Um exemplo disto é uma conexão que por algum motivo entrou em um loop infinito.

Por hoje é só pessoal, até a semana que vem.

Todos os artigos de Mauro Pichiliani

0 comentários publicados

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Mauro Pichiliani é mestre em computação, possui as certificações MCP, MCDBA, MCT e MCTS e atua como consultor de banco de dados com enfoque na área de tunning.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.