SQL Server: O CheckDB é executado com rapidez suficiente em um banco de dados, agonizando lentamente em outro

1

Este é para você, Paul! : -)

Eu tenho um cliente que tem dois bancos de dados para dois de seus escritórios. Ambos são aproximadamente do mesmo tamanho (cerca de 10 GB), ambos são hospedados no mesmo site do profissional - assim, dar ou receber, eles são os mesmos.

No entanto, o banco de dados A conclui sua etapa Check database integrity no plano de manutenção em menos de 30 minutos, enquanto o banco de dados B nunca é concluído - o DBA matou o processo após mais de 3 horas de execução.

Estas etapas estão sendo executadas "depois de horas" - portanto, não deve haver nenhuma atividade significativa nos servidores.

Alguma explicação? Alguma idéia do que procurar ou onde procurar uma razão para isso (e uma maneira de resolvê-lo)? Não há nenhum erro relatado ou qualquer coisa .....

    
por marc_s 19.07.2012 / 08:15

2 respostas

1

O DBCC CHECKDB não executa uma verificação de banco de dados. Na verdade, é uma coleção de comandos que verifica diferentes aspectos de um banco de dados. Parte relevante do BOL :

Executa DBCC CHECKALLOC no banco de dados. Executa DBCC CHECKTABLE em todas as tabelas e visualizações no banco de dados. Executa DBCC CHECKCATALOG no banco de dados.

Se um banco de dados leva 30 minutos e outro leva > 3 horas é bem provável que seja o comando CHECKTABLE. Esp. se os tamanhos dos bancos de dados forem dramaticamente diferentes.

    
por 24.07.2012 / 20:45
0

Desculpe, execute a verificação da integridade do banco de dados no banco de dados lento e LET IT FINISH. É provável que encontrou problemas e começou a entrar em detalhes e - isso levou muito mais tempo do que executar um banco de dados ok.

Possivelmente execute a sequência para verificar o banco de dados a partir da linha de comando;) O DBCC CHECKDB possui alguma saída que pode ajudá-lo;) Os planos de manutenção são um pouco mais difíceis de depurar.

    
por 19.07.2012 / 08:56