{"id":4030,"date":"2016-03-17T11:11:26","date_gmt":"2016-03-17T13:11:26","guid":{"rendered":"http:\/\/www.fabriciolima.net\/blog\/?p=4030"},"modified":"2016-07-23T15:05:10","modified_gmt":"2016-07-23T18:05:10","slug":"queries-do-dia-a-dia-criando-um-log-de-historico-da-sp_whoisactive","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2016\/03\/17\/queries-do-dia-a-dia-criando-um-log-de-historico-da-sp_whoisactive\/","title":{"rendered":"Queries do Dia a Dia &#8211; Criando um Log de Hist\u00f3rico da sp_WhoIsActive"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Tanto nos meus treinamentos quanto nas minhas palestras, \u00a0sempre indico a utiliza\u00e7\u00e3o da sp_WhoIsActive para quem ainda n\u00e3o conhece. Inclusive j\u00e1 falei sobre ela aqui no blog em 2011:<\/p>\n<p><a href=\"https:\/\/www.fabriciolima.net\/blog\/2011\/01\/10\/querys-do-dia-a-dia-monitoramento-do-banco-de-dados-who-is-active\/\" target=\"_blank\">https:\/\/www.fabriciolima.net\/blog\/2011\/01\/10\/querys-do-dia-a-dia-monitoramento-do-banco-de-dados-who-is-active\/<\/a><\/p>\n<p><!--more-->Para facilitar ainda mais a vida de voc\u00eas, vou compartilhar um script que utilizo em todos os clientes onde realizo um Tuning ou sou respons\u00e1vel por sua administra\u00e7\u00e3o com <a href=\"https:\/\/www.fabriciolima.net\/blog\/consultoria-remota\/\" target=\"_blank\">minha consultoria<\/a>.<\/p>\n<p>Antes de criar a rotina de hist\u00f3rico, se voc\u00ea ainda n\u00e3o utiliza essa procedure, deve baixar e criar no seu servidor:<\/p>\n<p><a href=\"http:\/\/sqlblog.com\/blogs\/adam_machanic\/archive\/2012\/03\/22\/released-who-is-active-v11-11.aspx\" target=\"_blank\">http:\/\/sqlblog.com\/blogs\/adam_machanic\/archive\/2012\/03\/22\/released-who-is-active-v11-11.aspx<\/a><\/p>\n<p>Esse script abaixo cria uma tabela em uma base que voc\u00ea vai definir e tamb\u00e9m j\u00e1 cria um job que ser\u00e1 executado de 07 h \u00e0s 22 h tirando uma foto da sp_WhoIsActive a cada minuto e salvando o resultado em uma tabela.<\/p>\n<p><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/downloads\/2016\/03\/Log-Historico-da-Whoisactive.txt\" class=\"download\" target=\"_blank\">Log de Hist\u00f3rico da sp_WhoIsActive<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Segue abaixo um exemplo do resultado desse log para um lock que aconteceu no banco de dados:<\/p>\n<p><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/03\/LogWhoisActive1.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft  wp-image-4039\" title=\"LogWhoisActive\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/03\/LogWhoisActive1-1024x180.png\" alt=\"\" width=\"819\" height=\"144\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Mesmo sem estar presente no momento do lock, conseguimos analisar posteriormente e ver que ele durou v\u00e1rios minutos e as queries envolvidas no lock.<\/p>\n<p>Essa informa\u00e7\u00e3o para mim \u00e9 sensacional. Se meu cliente reclama que teve uma lentid\u00e3o entre 16 h e 17 h, eu logo no servidor e consigo ver uma foto de tudo que estava sendo executado durante aquele per\u00edodo \u00a0a cada 1 minuto.<\/p>\n<p>Como n\u00e3o conseguimos ficar o dia inteiro monitorando o que est\u00e1 rodando no servidor, esse log \u00e9 uma m\u00e3o na roda. J\u00e1 me ajudou MUITO a identificar problemas de lentid\u00e3o e espero que possa ajudar voc\u00eas.<\/p>\n<p>Voc\u00ea tamb\u00e9m deve criar um job para excluir dados antigos dessa tabela de log para que sua base n\u00e3o cres\u00e7a muito (esse script \u00e9 por conta de voc\u00eas). Eu mantenho 7 dias de informa\u00e7\u00e3o nessa tabela nos meus clientes.<\/p>\n<p>\u00c9 um script simples, mas segue a\u00ed prontinho para implementa\u00e7\u00e3o. Agora tamb\u00e9m posso utilizar esse post como refer\u00eancia nas minhas apresenta\u00e7\u00f5es.<\/p>\n<p><b>Gostou dessa dica?<\/b><\/p>\n<p>Cadastre seu e-mail para receber novos Posts e curta minha <a href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\">P\u00e1gina no Facebook<\/a> para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>Aprenda a criar essa e outras rotinas para administrar melhor seu SQL Server no meu <a href=\"https:\/\/www.fabriciolima.net\/cursos-online\/treinamento-tarefas-do-dia-a-dia-de-um-dba-online\/\" target=\"_blank\">Treinamento de Tarefas do Dia a Dia de um DBA<\/a>.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>MCITP \u2013 Database Administrator<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Tanto nos meus treinamentos quanto nas minhas palestras, \u00a0sempre indico a utiliza\u00e7\u00e3o da sp_WhoIsActive para quem ainda n\u00e3o conhece. Inclusive j\u00e1 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\/<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[3,1248,33,280],"tags":[1250,1251,1253,1249,1252,63,1257,1256,1258,1255,1254,130,49,33,40,953],"class_list":["post-4030","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-queries-do-dia-a-dia","category-sql-server","category-virtual-pass-br","tag-administracao-sql-server","tag-historico-who-is-active","tag-monitoramento-queries-lentas","tag-monitoramento-sql","tag-monitorando-locks","tag-performance","tag-performance-sql-server","tag-problema-lentidao","tag-problema-performance","tag-problemas-sql-server","tag-query-lentas","tag-sp_whoisactive","tag-sql","tag-sql-server","tag-tuning","tag-tuning-sql-server"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/4030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=4030"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/4030\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=4030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=4030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=4030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}