Mantenimiento de Índices en SQL Server
Mantenimiento de Índices en SQL Server
Mantenimiento de Índices en SQL Server
fragmentacin
Los ndices son objetos de la base de datos diseados de manera similar a los ndices que
usamos en los libros para encontrar contenidos en el mismo.
stos ordenan los datos en nuestras tablas, permitiendo un acceso ms rpido y eficiente a
aqullos que estemos consultando, modificando o eliminando.
Por ello, la actualizacin de los registro de las tablas de la base datos, obliga al servidor SQL a
realizar ciertas operaciones que nos garanticen el orden de los datos en los ndices. Debido a
esta actualizacin, la informacin almacenada en los ndices se ve fragmentada con su uso.
Estafragmentacin depende de parmetros como el fill factor, nmero de pginas, tamao del
ndice y frecuencia de actualizacin.
En definitiva, un ndice sobre un tabla, debido a actualizaciones sobre sta, puede perder
eficacia y, con ello, nuestras consultas volverse ms lentas y su rendimiento deteriorarse.
Es necesario, pues, realizar peridicamente tareas de consulta del estado de nuestros ndices,
para mantener la fragmentacin por debajo de unos lmites recomendables. sta se mide en
porcentaje, correspondiendo un valor bajo (entre 0% y 10%) a un estado ptimo del ndice y
siendo peor el estado cuando el valor de dicho indicador mayor sea.
Defragmentacin, al rescate
Para evitar el deterioro del rendimiento en nuestro servidor, deberemos mantener nuestros
ndices en un estado de fragmentacin ptimo. Lo podremos lograr sencillamente siguiendo
estos pasos.
Primer paso: detectar fragmentacin en los ndices de tu base de datos. Para ello,
nos basaremos en la vista de sistema sys.dm_db_index_physical_stats, que encapsularemos
en la siguiente query:
123456789101112
Segundo paso: ejecutar un script para defragmentar los ndices con problemas. El
script determina si hay que hacer un Reorganize o un Rebuild para cada ndice: