Loading…

Casos do Dia a Dia – Lentidão ao limpar o histórico de backup na base MSDB

Olá Pessoal,

Hoje vou compartilhar com vocês uma experiência que tive essa semana realizando uma consultoria em um cliente.

Cenário:

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 -- 2 milhões de registros
select count (*) from backupset  -- 1 milhão  de  registros

Existe uma procedure chamada sp_delete_backuphistory que limpa essas tabelas, mas para não excluir muitos registros de uma vez, tentei excluir os mais antigos que 360 dias:

DECLARE @d datetime

SET @d = DATEADD(dd, -360, GETDATE())

exec msdb.dbo.sp_delete_backuphistory @d

Contudo, esse comando demorou MUITO!!! Fiquei esperando 30 minutos e desisti.

Fui buscar alternativas e em um fórum vi alguém sugerindo a criação de alguns índices nessas tabelas.

Criei apenas o índice abaixo:

CREATE INDEX [Sk01_Backupset] ON [dbo].[backupset] ([media_set_id])

Ao executar novamente o delete com o mesmo parâmetro, agora ele rodou em 19 segundos.

É isso mesmo, de “30 minutos + desistência” para “19 segundos + sucesso”.

Feito isso, fui excluindo aos poucos até sobrar 2 meses de informações.

Ao final do processo, como esse índice é em uma tabela de sistema, eu excluí o índice para não ter problemas com o suporte do produto.

Com poucos dados o índice não é necessário, mas se sua tabela crescer muito, ele será de grande ajuda caso queira excluir dados.

Para finalizar, criei um job para manter a tabela com 60 dias de informações de histórico de backup.

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.

Confira mais experiências do Dia a Dia de um DBA no meu Treinamento de Tarefas do Dia a Dia de um DBA.

Até a próxima.

Abraços,

Fabrício Lima

MCITP – Database Administrator

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

 

3 thoughts on “Casos do Dia a Dia – Lentidão ao limpar o histórico de backup na base MSDB

Deixe uma resposta para marcussoaresoracleCancelar resposta

%d blogueiros gostam disto: