{"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":"","jetpack_post_was_ever_published":false},"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"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":241,"url":"https:\/\/fabriciolima.net\/blog\/2011\/01\/10\/querys-do-dia-a-dia-monitoramento-do-banco-de-dados-who-is-active\/","url_meta":{"origin":4030,"position":0},"title":"Querys do Dia a Dia &#8211; Monitoramento do Banco de Dados &#8211; Who is Active","author":"Fabr\u00edcio Lima","date":"10 de janeiro de 2011","format":false,"excerpt":"Fala Pessoal, Nesse inicio de ano meu blog\u00a0ficaria um pouco parado pois estou intensificando meus estudos para atualizar meu t\u00edtulo de MCITP Database Administrator para o SQL Server 2008(prova 70-453). Entretanto, como a m\u00e9dia de acessos do blog est\u00e1 ainda maior que\u00a0no ano passado, n\u00e3o poderia deix\u00e1-lo parado todo esse\u2026","rel":"","context":"Em &quot;Querys do Dia a Dia&quot;","block_context":{"text":"Querys do Dia a Dia","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/querys-do-dia-a-dia\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10228,"url":"https:\/\/fabriciolima.net\/blog\/2020\/08\/26\/query-store-06-queries-do-bd-travadas-com-o-wait-qds_stmt\/","url_meta":{"origin":4030,"position":1},"title":"Query Store (#06) &#8211; Queries do BD Travadas com o Wait QDS_STMT","author":"Fabr\u00edcio Lima","date":"26 de agosto de 2020","format":false,"excerpt":"*****Obs.:\u00a0 Esse post estava no meu rascunho desde o ano passado e o problema aconteceu em 2017... Sorry...***** Fala Pessoal, Segue mais uma experi\u00eancia que tive utilizando o Query Store. O Query Store j\u00e1 estava habilitado no ambiente a algum tempo e funcionando normalmente, me ajudando a encontrar queries problem\u00e1ticas\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_4_1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_4_1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_4_1.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_4_1.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_4_1.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":7402,"url":"https:\/\/fabriciolima.net\/blog\/2019\/02\/06\/query-store-01-introducao\/","url_meta":{"origin":4030,"position":2},"title":"Query Store (#01) &#8211; Introdu\u00e7\u00e3o","author":"Fabr\u00edcio Lima","date":"6 de fevereiro de 2019","format":false,"excerpt":"Fala Pessoal, O Query Store hoje j\u00e1 n\u00e3o \u00e9 novidade para ningu\u00e9m, disponibilizado desde o SQL Server 2016, temos v\u00e1rios posts e v\u00eddeos que j\u00e1 falam um pouco dessa feature. Contudo, pretendo fazer uma s\u00e9rie de post para tentar cobrir de uma forma mais detalhada as funcionalidades, benef\u00edcios e poss\u00edveis\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/02\/QueryStore.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/02\/QueryStore.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/02\/QueryStore.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":10221,"url":"https:\/\/fabriciolima.net\/blog\/2019\/06\/01\/query-store-05-lock-gerado-ao-executar-o-comando-set-query_store-off\/","url_meta":{"origin":4030,"position":3},"title":"Query Store (#05) &#8211; Lock gerado ao executar o comando SET QUERY_STORE = OFF","author":"Fabr\u00edcio Lima","date":"1 de junho de 2019","format":false,"excerpt":"Fala Pessoal, Continuando a s\u00e9rie sobre o Query Store, hoje vou compartilhar um outro problema que tive no meu dia a dia. Mais uma vez utilizei essa baita ferramenta que \u00e9 o Query Store para agilizar meu trabalho de Tuning de queries em um cliente. Ferramenta sensacional para isso. Te\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":7756,"url":"https:\/\/fabriciolima.net\/blog\/2017\/04\/25\/alerta-monitorando-processos-bloqueados-no-sql-server\/","url_meta":{"origin":4030,"position":4},"title":"Alerta: Monitorando Processos Bloqueados no SQL Server","author":"Fabr\u00edcio Lima","date":"25 de abril de 2017","format":false,"excerpt":"Ol\u00e1 Pessoal, Hoje vou compartilhar com voc\u00eas o script de mais um alerta para nos ajudar na Administra\u00e7\u00e3o do nosso SQL Server. Esse alerta \u00e9 muito \u00fatil no dia a dia. Ele vai monitorar os famosos \"Locks\" que acontecem no nosso banco\u00a0de dados.\u00a0Caso aconte\u00e7a algum Lock com um\u00a0processo que esteja\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/Processo_Bloqueado_Alerta.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/Processo_Bloqueado_Alerta.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/Processo_Bloqueado_Alerta.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/Processo_Bloqueado_Alerta.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/Processo_Bloqueado_Alerta.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/Processo_Bloqueado_Alerta.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":7725,"url":"https:\/\/fabriciolima.net\/blog\/2017\/04\/17\/treinamento-presencial-consultoria-de-tuning-ao-vivo-na-unitfour\/","url_meta":{"origin":4030,"position":5},"title":"Treinamento Presencial + Consultoria de Tuning AO VIVO na Unitfour","author":"Fabr\u00edcio Lima","date":"17 de abril de 2017","format":false,"excerpt":"\u00a0 Fala Pessoal, Na semana passada desembarquei direto do SQL Saturday de Joinville em S\u00e3o Paulo para ministrar um treinamento presencial na Unitfour. Mais uma experi\u00eancia top!!!\u00a0Galera divertida, mas bem focada no objetivo de melhorar a modelagem, performance e administra\u00e7\u00e3o do ambiente SQL Server. Fizemos algumas adapta\u00e7\u00f5es para atender a\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/TreinamentoUnitfour.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/TreinamentoUnitfour.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/04\/TreinamentoUnitfour.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"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}]}}