Identificando Gargalos no Microsoft SQL Server

“Gargalos significam restrições em determinadas formas de comunicação, interação ou transferência de informações.”

O principal problema dos gargalos de desempenho nas empresas (em particular na área de Tecnologia da Informação) é que eles podem ser difíceis de identificar. Alguns são mais óbvios do que outros.

Para encontrar possíveis gargalos e processos com problemas no SQL Server, é recomendado que se utilize a tabela de sistema sysprocesses, como mostra a Tabela.

Passos
select * from master..sysprocesses where

status = ‘runnable’ ou

select * from master..sysprocesses where

dbid = xx

(Este passo serve quando há suspeita de um gargalo em um BD) 

Para saber o DataBase ID (DBID) de um BD,

deverá ser executado o seguinte comando:

select DB_ID(‘nome do BD)

ou então deve-se executar diretamente a query passando o nome do BD como parâmetro:

select * from master..sysprocesses where

dbid = db_id(‘Pubs’)

Esta query retornará o status de cada processo no SQL Server: spid | kpid | blocked

| waittype | waittime | lastwaittype | waitresource

| dbid | uid | …

Convém observar se existe algum tempo em que um processo está em espera, verificando o status waittime, waittype ou lastwaittype.

Identificando o tipo de espera, é possível saber o que está acontecendo, se o problema é de Entrada/Saída (E/S), lock de um objeto

(LATCH), ou memória (MEMORY), etc.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s