Os índices são reconstruídos para remover a fragmentação. Existem mil e um artigos e postagens de blog sobre a natureza da fragmentação do índice, mas o @BrentOzar postou recentemente uma explicação concisa em Stop Worrying About SQL Server Fragmentation .
Vamos dar um passo atrás por um segundo e fingir que seu banco de dados é uma lista telefônica organizada por sobrenome, primeiro nome.
À medida que as pessoas se mudam para sua cidade, precisamos adicioná-las à lista telefônica. Idealmente, cada página tem algum espaço vazio, e nós o governamos com o fator de preenchimento. Quando o SQL Server recria índices, ele usa o fator de preenchimento para decidir quanto espaço livre resta em cada página. Se não houver espaço livre suficiente, o SQL Server precisará fazer uma reorganização - mas não pode colocar uma nova página no meio da lista telefônica. O livro já está encadernado. Teremos que colocar mais páginas em branco no final.
Problema # 1 - Fragmentação Interna: Temos uma página recém-adicionada com quase nada de material. Problema nº 2 - Fragmentação externa: as páginas da lista telefônica estão com defeito.
O artigo recente de Brent oferece uma perspectiva atualizada de uma de suas séries anteriores, Index Fragmentation Findings . O artigo mais antigo destaca estatísticas de estudos muito mais antigos sobre os efeitos prejudiciais da fragmentação. Quanto mais recente, é possível mitigar uma grande porcentagem das desvantagens de desempenho, garantindo que seu banco de dados seja totalmente armazenado em cache.
Agora, o Ram é tão comicamente barato que é provavelmente a solução mais barata, fácil e de menor risco para um banco de dados altamente fragmentado. Especialmente se a natureza do design do banco de dados for tal que ele se torne naturalmente fragmentado, apesar dos esforços de manutenção.