Nosso servidor SQL vive em uma SAN. Ele contém dezenas de bancos de dados OLTP, alguns com várias tabelas contendo mais de 1 milhão de registros.
Temos vindo a executar scripts de manutenção do índice de Ola Hallengren semanal, e ele é executado por várias horas de cada vez. Com base no limite de fragmentação, o script irá reorganizar ou reindexar um índice. Observamos que durante a reindexação, os arquivos de log ficam enormes, o que leva a um consumo excessivo de largura de banda durante o envio do log.
Em seguida, vem um artigo de Brent Ozar, no qual ele diz para parar de se preocupar com os índices SQL :
Seus discos rígidos são compartilhados com outros servidores que também fazem solicitações de unidade ao mesmo tempo, para que as unidades estejam sempre pulando por todo o lugar para obter dados. Desfragmentar seus índices é apenas um trabalho ocupado sem sentido.
Pesquisar esta questão no Google leva a opiniões divergentes, mais apoiadas por argumentos que parecem breves ou fracos demais. Nosso plano preliminar é ajustar o limite de fragmentação em nosso script de manutenção para que ele se reorganize com muito mais frequência do que reindexa.
Qual é o veredicto final? Vale a pena desfragmentar os índices SQL em uma SAN, considerando os encargos associados à execução de tarefas de manutenção semanais?
Idealmente, você deve reorganizar / reindexar APENAS os índices que precisam de atenção; caso contrário, você está desperdiçando recursos e potencialmente causando outros problemas.
Você precisa estabelecer uma linha de base de desempenho e, sempre que fizer alterações, compare a alteração de desempenho com a linha de base para determinar se vale a pena implementá-la.
fonte
Ok, a pergunta é sobre índices de banco de dados, que são uma construção de um arquivo ou conjunto de arquivos. A leitura das respostas acima levaria uma pessoa a acreditar que estamos falando de fragmentação no nível do disco e não dos índices dentro de um arquivo. Estes assuntos totalmente separados.
A abordagem míope aqui é o desempenho ao recuperar dados no banco de dados OLTP e melhorar se os índices forem fragmentados ou reconstruídos. A resposta é sim! No entanto, é importante observar que a fragmentação do disco também é um fator.
"Custo" mais baixo em geral? Faça sua manutenção de banco de dados. Segundo menor custo, desanexe o banco de dados, mova-o para outro lugar, formate novamente seus discos e siga as práticas recomendadas para o alinhamento de partições de disco http://msdn.microsoft.com/en-us/library/dd758814.aspx . Por último, mas não menos importante, use um desfragmentador avançado de terceiros como o Diskkeeper.
Lembre-se de que isso APENAS é recomendado para armazenamento do tipo NTFS (por exemplo, sistema operacional Windows) e não é um endosso a nenhum produto, nem sou afiliado à Condusiv Technologies ou suas subsidiárias.
fonte