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:
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
Conteúdo muito bom, obrigada.
Em relação ao agendamento a cada 5s; qual impacto pode ocorrer no ambiente?
Vai ser o tempo de rodar e gravar.. Esse é o impacto… deve gerar mt info na tabela tb.