He usado ALTER INDEX REBUILD para eliminar la fragmentación del índice. En algunos casos, REBUILD no parece eliminar esta fragmentación. ¿Cuáles son las razones por las cuales REBUILD no elimina la fragmentación? Parece que esto sucede especialmente con pequeños índices.
30
Respuestas:
Si un índice es muy pequeño (creo que menos de 8 páginas) usará extensiones mixtas. Por lo tanto, parecerá que aún queda fragmentación, ya que la extensión de la carcasa contendrá páginas de múltiples índices.
Debido a esto, y también al hecho de que en un índice tan pequeño que la fragmentación es típicamente insignificante, realmente solo debería reconstruir índices con un cierto umbral de página. Es una buena práctica reconstruir índices fragmentados que tengan un mínimo de 1000 páginas .
fuente
Esto también puede suceder con índices muy GRANDES.
Tenía algunos índices en una tabla con alrededor de 700m de filas que no podía desfragmentar por debajo de alrededor del 30%. El problema no era suficiente espacio libre contiguo dentro de la base de datos para organizar el índice de forma consecutiva.
Para evitar un índice muy grande que no desfragmente, la MEJOR solución es cambiar el tamaño de una nueva base de datos y mover todos sus objetos a esa base de datos, luego recrear sus índices allí.
fuente
He tenido problemas con esto por algún tiempo y, al igual que JNK, pensé que el problema era el espacio libre y la fragmentación física en el disco. Sin embargo, ¿qué haces al respecto en una SAN SSD?
Ahora he descubierto que puede ser una buena idea incluir solo index_level = 0. Así es como se hace en el guión de Ola Hallengren.
Otra mejora es hacer
De esta manera se garantiza la máxima mejora.
fuente