{"id":6499,"date":"2016-09-15T09:15:28","date_gmt":"2016-09-15T12:15:28","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=6499"},"modified":"2016-09-15T14:17:00","modified_gmt":"2016-09-15T17:17:00","slug":"casos-do-dia-a-dia-lentidao-ao-limpar-o-historico-de-backup-na-base-msdb","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2016\/09\/15\/casos-do-dia-a-dia-lentidao-ao-limpar-o-historico-de-backup-na-base-msdb\/","title":{"rendered":"Casos do Dia a Dia &#8211; Lentid\u00e3o ao limpar o hist\u00f3rico de backup na base MSDB"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Hoje vou compartilhar com voc\u00eas uma experi\u00eancia que tive essa semana realizando uma consultoria em um cliente.<\/p>\n<p><strong>Cen\u00e1rio:<\/strong><\/p>\n<p>Cliente com um ambiente pequeno e com a base MSDB com quase 3 Gb de tamanho, onde as duas tabelas abaixo estavam muito grandes:<\/p>\n<pre class=\"lang:tsql decode:true\">select count (*) from backupfile -- 2 milh\u00f5es de registros\r\nselect count (*) from backupset  -- 1 milh\u00e3o  de  registros<\/pre>\n<p>Existe uma procedure chamada sp_delete_backuphistory que limpa essas tabelas, mas para n\u00e3o excluir muitos registros de uma vez, tentei excluir os mais antigos que 360 dias:<\/p>\n<pre class=\"lang:tsql decode:true\">DECLARE @d datetime\r\n\r\nSET @d = DATEADD(dd, -360, GETDATE())\r\n\r\nexec msdb.dbo.sp_delete_backuphistory @d<\/pre>\n<p><span style=\"color: #ff0000;\">Contudo, esse comando demorou MUITO!!! Fiquei esperando 30 minutos e desisti.<\/span><\/p>\n<p>Fui buscar alternativas e em um f\u00f3rum vi algu\u00e9m sugerindo a cria\u00e7\u00e3o de alguns \u00edndices nessas tabelas.<\/p>\n<p>Criei apenas o \u00edndice abaixo:<\/p>\n<pre class=\"lang:tsql decode:true\">CREATE INDEX [Sk01_Backupset] ON [dbo].[backupset] ([media_set_id])<\/pre>\n<p>Ao executar novamente o delete com o mesmo par\u00e2metro, agora ele rodou em <strong>19 segundos<\/strong>.<\/p>\n<p>\u00c9 isso mesmo, de <strong>&#8220;30 minutos + desist\u00eancia&#8221;<\/strong> para <strong>&#8220;19 segundos + sucesso&#8221;<\/strong>.<\/p>\n<p>Feito isso, fui excluindo aos poucos at\u00e9 sobrar 2 meses de informa\u00e7\u00f5es.<\/p>\n<p><strong><span style=\"color: #ff0000;\">Ao final do processo<\/span><\/strong>, como esse \u00edndice \u00e9 em uma tabela de sistema, <span style=\"color: #ff0000;\"><strong>eu exclu\u00ed o \u00edndice para n\u00e3o ter problemas com o suporte do produto<\/strong><\/span>.<\/p>\n<p>Com poucos dados o \u00edndice n\u00e3o \u00e9 necess\u00e1rio, mas se sua tabela crescer muito, ele ser\u00e1 de grande ajuda caso queira excluir dados.<\/p>\n<p>Para finalizar, criei um job para manter a tabela com 60 dias de informa\u00e7\u00f5es de hist\u00f3rico de backup.<\/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>Confira mais experi\u00eancias do Dia a Dia de um DBA 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>At\u00e9 a pr\u00f3xima.<\/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<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Hoje vou compartilhar com voc\u00eas uma experi\u00eancia que tive essa semana realizando uma consultoria em um cliente. Cen\u00e1rio: Cliente com um ambiente pequeno e com a base MSDB com quase 3 Gb de tamanho, onde as duas tabelas abaixo estavam muito grandes: select count (*) from backupfile &#8212; 2 milh\u00f5es de registros select [&hellip;]<\/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,6,942,33,280],"tags":[1355,302,1348,1349,1350,1353,1351,1352,1354],"class_list":["post-6499","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","category-consultoria-sql-server","category-sql-server","category-virtual-pass-br","tag-backupfile","tag-backupset","tag-historico-backup","tag-limpar-historico-de-backup","tag-limpeza-msdb","tag-msdb","tag-msdb-grande","tag-problema-msdb","tag-sp_delete_backuphistory"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":285,"url":"https:\/\/fabriciolima.net\/blog\/2010\/03\/24\/criando-um-checklist-automatico-do-banco-de-dados\/","url_meta":{"origin":6499,"position":0},"title":"Criando um CheckList Autom\u00e1tico do Banco de Dados","author":"Fabr\u00edcio Lima","date":"24 de mar\u00e7o de 2010","format":false,"excerpt":"Atualizado em: 01\/05\/2017 OBS: Segue abaixo o link de um Post com uma nova vers\u00e3o desse CheckList muito mais pr\u00e1tica e com diversas melhorias. Desta vez, o CheckList ser\u00e1 enviado por e-mail em formato HTML: Link Post: Criando um E-mail de CheckList Di\u00e1rio no SQL Server \u00a0 Ol\u00e1 pessoal, Assim\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":"","width":0,"height":0},"classes":[]},{"id":959,"url":"https:\/\/fabriciolima.net\/blog\/2011\/09\/07\/querys-do-dia-a-dia-monitoramento-do-status-das-databases-e-de-paginas-corrompidas\/","url_meta":{"origin":6499,"position":1},"title":"Querys do Dia a Dia: Monitoramento do Status das Databases e de P\u00e1ginas Corrompidas","author":"Fabr\u00edcio Lima","date":"7 de setembro de 2011","format":false,"excerpt":"Fala Pessoal, Depois de ter algumas p\u00e1ginas corrompidas e uma database em modo Suspect (Casos do Dia a Dia: Corrup\u00e7\u00e3o de Dados e Database Suspect), resolvi criar uma procedure que realiza um monitoramento desse tipo de problema a cada\u00a01 minuto e me envia um e-mail e um torpedo em caso\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":"","width":0,"height":0},"classes":[]},{"id":3628,"url":"https:\/\/fabriciolima.net\/blog\/2015\/11\/12\/casos-do-dia-a-dia-corrupcao-de-dados-alertas-backup-log-dba-salvo\/","url_meta":{"origin":6499,"position":2},"title":"Casos do Dia a Dia: Corrup\u00e7\u00e3o de dados + Alertas + Backup Log = DBA Salvo!","author":"Fabr\u00edcio Lima","date":"12 de novembro de 2015","format":false,"excerpt":"Ol\u00e1 Pessoal, Estou aqui para compartilhar com voc\u00eas mais um caso do dia a dia que aconteceu comigo no dia de ontem. Estava eu feliz da vida trabalhando em meu home office, quando recebi um e-mail de alerta indicando corrup\u00e7\u00e3o de dados em um dos meus 12 clientes que realizo\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":"","width":0,"height":0},"classes":[]},{"id":3022,"url":"https:\/\/fabriciolima.net\/blog\/2014\/06\/16\/cliente-diz-tenho-backups-e-meu-banco-esta-seguro-sera\/","url_meta":{"origin":6499,"position":3},"title":"Cliente diz: &#8220;Tenho Backups e meu banco est\u00e1 seguro&#8221;. Ser\u00e1???","author":"Fabr\u00edcio Lima","date":"16 de junho de 2014","format":false,"excerpt":"Ol\u00e1 Pessoal, O objetivo desse post \u00e9 fazer um alerta a todos voc\u00eas que s\u00e3o respons\u00e1veis por um banco de dados SQL Server, seja voc\u00ea um desenvolvedor, um analista de banco de dados, um coordenador ou gerente de TI. J\u00e1 atendi muitos clientes na minha Consultoria SQL Server que contrataram\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":"","width":0,"height":0},"classes":[]},{"id":294,"url":"https:\/\/fabriciolima.net\/blog\/2010\/06\/05\/passo-a-passo-para-encontrar-as-querys-mais-demoradas-do-banco-de-dados-parte-2\/","url_meta":{"origin":6499,"position":4},"title":"Passo a passo para encontrar as querys mais demoradas do Banco de Dados &#8211; Parte 2","author":"Fabr\u00edcio Lima","date":"5 de junho de 2010","format":false,"excerpt":"Continuando o artigo Passo a passo para encontrar as querys mais demoradas do Banco de Dados - Parte 1. Agora que o trace j\u00e1 foi testado e vimos que ele realmente funciona, criaremos um job para enviar o trace para a tabela de log e automatizar todo o processo. Voc\u00ea\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":"Step1_thumb1","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2010\/10\/step1_thumb15b45d.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":11132,"url":"https:\/\/fabriciolima.net\/blog\/2019\/11\/20\/como-criar-mais-de-30-alertas-por-e-mail-no-sql-server-rds-da-amazon\/","url_meta":{"origin":6499,"position":5},"title":"Como criar mais de 30 alertas por e-mail no SQL Server RDS da Amazon","author":"Fabr\u00edcio Lima","date":"20 de novembro de 2019","format":false,"excerpt":"Fala Pessoal, Para quem encontrou meu Blog s\u00f3 agora, desde setembro j\u00e1 tinha liberado scripts para criar 40 alertas no SQL Server: https:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/ Tamb\u00e9m gravei um mini curso gr\u00e1tis explicando em detalhes como configurar esses 40 alertas: https:\/\/cursos.fabriciolima.net\/course?courseid=criando-40-alertas-para-monitorar-o-sql-server Contudo, esses alertas funcionam para voc\u00ea que administra uma inst\u00e2ncia \"normal\" do\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\/11\/Amazon-RDS-300x150.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/6499","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=6499"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/6499\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=6499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=6499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=6499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}