sql >> Base de Datos >  >> RDS >> Sqlserver

¿Índices agrupados en columnas sin identidad para acelerar las inserciones masivas?

Bueno, lo he puesto a prueba y poner un índice agrupado en las dos columnas "de definición de fragmentos" aumenta el rendimiento de mi tabla.

Insertar un fragmento ahora es relativamente rápido en comparación con la situación en la que tenía una clave de IDENTIDAD agrupada, y casi tan rápido como cuando no tenía ningún índice agrupado. Eliminar un fragmento es más rápido que con o sin índice agrupado.

Creo que el hecho de que todos los registros que quiero eliminar o insertar están garantizados para estar todos juntos en una determinada parte del disco duro hace que las tablas sean más rápidas; me parecería lógico.

Actualizar :Después de un año de experiencia con este diseño, puedo decir que para que este enfoque funcione, es necesario programar la reconstrucción periódica de todos los índices (lo hacemos una vez por semana). De lo contrario, los índices se fragmentarán muy pronto y se perderá el rendimiento. Sin embargo, estamos en un proceso de migración a un nuevo diseño de base de datos con tablas particionadas, que es básicamente mejor en todos los sentidos, excepto por el costo de la licencia de Enterprise Server, pero ya lo hemos olvidado. Al menos yo tengo.