Loading…

Queries do Dia a Dia – Criando um Log de Histórico da sp_WhoIsActive

Olá Pessoal,

Tanto nos meus treinamentos quanto nas minhas palestras,  sempre indico a utilização da sp_WhoIsActive para quem ainda não conhece. Inclusive já falei sobre ela aqui no blog em 2011:

https://www.fabriciolima.net/blog/2011/01/10/querys-do-dia-a-dia-monitoramento-do-banco-de-dados-who-is-active/

Para facilitar ainda mais a vida de vocês, vou compartilhar um script que utilizo em todos os clientes onde realizo um Tuning ou sou responsável por sua administração com minha consultoria.

Antes de criar a rotina de histórico, se você ainda não utiliza essa procedure, deve baixar e criar no seu servidor:

http://sqlblog.com/blogs/adam_machanic/archive/2012/03/22/released-who-is-active-v11-11.aspx

Esse script abaixo cria uma tabela em uma base que você vai definir e também já cria um job que será executado de 07 h às 22 h tirando uma foto da sp_WhoIsActive a cada minuto e salvando o resultado em uma tabela.

Log de Histórico da sp_WhoIsActive

 

Segue abaixo um exemplo do resultado desse log para um lock que aconteceu no banco de dados:

 

Mesmo sem estar presente no momento do lock, conseguimos analisar posteriormente e ver que ele durou vários minutos e as queries envolvidas no lock.

Essa informação para mim é sensacional. Se meu cliente reclama que teve uma lentidão entre 16 h e 17 h, eu logo no servidor e consigo ver uma foto de tudo que estava sendo executado durante aquele período  a cada 1 minuto.

Como não conseguimos ficar o dia inteiro monitorando o que está rodando no servidor, esse log é uma mão na roda. Já me ajudou MUITO a identificar problemas de lentidão e espero que possa ajudar vocês.

Você também deve criar um job para excluir dados antigos dessa tabela de log para que sua base não cresça muito (esse script é por conta de vocês). Eu mantenho 7 dias de informação nessa tabela nos meus clientes.

É um script simples, mas segue aí prontinho para implementação. Agora também posso utilizar esse post como referência nas minhas apresentações.

Gostou dessa dica?

Cadastre seu e-mail para receber novos Posts e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.

Aprenda a criar essa e outras rotinas para administrar melhor seu SQL Server no meu Treinamento de Tarefas do Dia a Dia de um DBA.

Abraços,

Fabrício Lima

MCITP – Database Administrator

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

2 thoughts on “Queries do Dia a Dia – Criando um Log de Histórico da sp_WhoIsActive

Deixe uma resposta