DBA que está preocupado com a reorganização ou reutilização de índices pode causar perda de dados?

14

Temos alguns bancos de dados com fragmentação de índice que é > 95%. O melhor que posso dizer é que os índices nunca foram reconstruídos e muito menos reorganizados. Em anos.

(Para ser justo, estas tabelas parecem ter estatísticas auto-atualizadas ativadas. Também, para ser justo, ele é diligente quanto a backups: diários completos e logs trx por hora.)

Quando perguntei, o DBA disse que estava relutante em reconstruir ou reorganizar os índices. Quando perguntei por que, ele não conseguia articulá-lo. Eventualmente, ele disse que estava preocupado com a possível perda de dados. Por exemplo, um dos bancos de dados é usado pelo nosso aplicativo de contabilidade Great Plains Dynamics, e ele parecia muito ansioso sobre isso.

Eu não sou um DBA, mas pelo que li, sua ansiedade parece ... difícil de entender.

Não sei o que fazer a seguir. Sugestões como devo proceder?

    
por Greg Hendershott 04.05.2011 / 17:43

3 respostas

22

Reconstruir um índice de banco de dados não deve causar perda de dados. No entanto, isso provavelmente causará uma degradação substancial do desempenho, pois os índices que estão sendo reconstruídos normalmente não estarão disponíveis para uso até que a reconstrução seja concluída. Por essa razão, isso deve ser feito fora do expediente, quando os sistemas afetados estiverem ociosos.

Paranoia é uma coisa boa em um DBA - Se eles estão preocupados com a perda de dados eu gostaria que eles fizessem um teste adequado dos backups (restaure-os em um sistema separado e certifique-se de que os dados estão todos lá), e se Eles ainda estão preocupados, em seguida, executar um backup completo antes de reconstruir os índices seria uma precaução razoável a tomar.

    
por 04.05.2011 / 18:01
6

Não há risco de perda de dados pela reconstrução ou desfragmentação de índices.

    
por 04.05.2011 / 20:51
4

Reorganizar os índices levará menos tempo e menos esforço do servidor SQL, portanto, eles podem ser feitos em um tipo de instância durante a semana. Se o que você está dizendo for verdade, até mesmo reorganizar os índices que nunca foram, pode causar um impacto maior no servidor também. Reconstruir os índices levará uma quantidade substancial de esforço do servidor SQL, uma vez que eles são descartados e recriados. Fazer uma reconstrução nas noites da semana não vale o risco de o servidor estar ocupado com índices e não atender as pessoas que o usam.

Concordo com voretaq7, se ele está preocupado em trabalhar com índices, experimente primeiro nos servidores de desenvolvimento ou teste para ver como reagem.

    
por 04.05.2011 / 18:22