¿Cuál es la función de reconstrucción de índices?

8

Soy joven en el mundo de TI y estoy aprendiendo a diario. Acabo de comenzar a trabajar con bases de datos SQL y tengo muchas preguntas básicas.

Uno en particular, ¿Cuál es la función de reconstrucción de índices? Todavía tengo que encontrar una buena respuesta a través de Google.

Cualquier comentario es apreciado.

Albert Green
fuente

Respuestas:

11

Los índices se reconstruyen para eliminar la fragmentación. Hay mil y un artículos y publicaciones de blog sobre la naturaleza de la fragmentación del índice, pero @BrentOzar recientemente publicó una explicación particularmente concisa en Stop Worrying About SQL Server Fragmentation .

Retrocedamos un segundo y pretendamos que su base de datos es una guía telefónica organizada por apellido, nombre.

A medida que las personas se mudan a su ciudad, tenemos que agregarlas a la guía telefónica. Idealmente, cada página tiene un espacio vacío, y lo gobernamos con el factor de relleno. Cuando SQL Server reconstruye índices, utiliza el factor de relleno para decidir cuánto espacio libre dejar en cada página. Si no hay suficiente espacio libre, SQL Server tiene que reorganizar, pero no puede empujar exactamente una nueva página en el medio de la guía telefónica. El libro ya está encuadernado. Tendremos que agregar más páginas en blanco al final.

Problema n. ° 1: Fragmentación interna: tenemos una página recién agregada con casi nada. Problema # 2 - Fragmentación externa: las páginas de la guía telefónica están fuera de servicio.

El reciente artículo de Brent ofrece una perspectiva actualizada sobre una de sus series anteriores, Index Fragmentation Findings . El artículo anterior destaca las estadísticas de estudios mucho más antiguos sobre los efectos dañinos de la fragmentación, el más reciente es un argumento para mitigar un gran porcentaje de las desventajas del rendimiento al garantizar que su base de datos esté completamente en caché.

Ram es ahora tan cómicamente barato que probablemente sea la solución más barata, fácil y de menor riesgo para una base de datos muy fragmentada. Especialmente si la naturaleza del diseño de la base de datos es tal que naturalmente se fragmentará a pesar de los esfuerzos de mantenimiento.

Mark Storey-Smith
fuente
3

La respuesta simplificada: la reconstrucción del índice es una forma de eliminar la fragmentación del índice. Se cae el índice especificado y se crea nuevamente eliminando la fragmentación en el proceso. Puede encontrar este artículo útil

RK Kuppala
fuente