Eu usei ALTER INDEX REBUILD para remover a fragmentação do índice. Em alguns casos, REBUILD não parece remover essa fragmentação. Quais são as razões pelas quais o REBUILD não remove a fragmentação? Parece que isso acontece especialmente com índices pequenos.
Se um índice for muito pequeno (acredito que menos de 8 páginas), ele usará extensões mistas. Portanto, parecerá que ainda há fragmentação restante, pois a extensão do alojamento conterá páginas de vários índices.
Por causa disso, e também pelo fato de que em um índice tão pequeno que a fragmentação é normalmente desprezível, você realmente só deve reconstruir índices com um determinado limite de página. É uma prática recomendada reconstruir índices fragmentados com um mínimo de 1.000 páginas .
Isso também pode acontecer com índices muito GRANDES.
Eu tinha alguns índices em uma tabela com cerca de 700 milhões de linhas que não consegui desfragmentar abaixo de 30%. O problema não era espaço livre contíguo suficiente dentro do banco de dados para organizar o índice consecutivamente.
Para contornar um índice muito grande que não será desfragmentado, a MELHOR solução é pré-dimensionar um novo banco de dados e mover todos os seus objetos para esse banco de dados e, em seguida, recriar seus índices lá.
Eu tenho lutado com isso por algum tempo e, como o JNK , pensei que o problema continuasse com o espaço livre e a fragmentação física no disco. No entanto, o que você faz sobre isso em uma SAN SSD?
Descobri agora que pode ser uma boa ideia incluir apenas index_level=0. É assim que é feito no roteiro de Ola Hallengren.
Outra melhoria é fazer
Desta forma, você garante o máximo de melhoria.