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

Problemas de fragmentación de SQL Server

Los índices agrupados controlan el orden de los datos en el DISCO. Esta es una de las razones principales por las que generalmente se recomienda configurar una clave de número entero siempre creciente para que actúe como índice agrupado. De esta manera, a medida que se agregan más datos a la tabla, se agregan al final de los datos existentes actualmente.

Si no es un número que aumenta automáticamente y las nuevas filas pueden contener valores que se ordenarían en algún lugar entre los valores existentes, SQL Server básicamente empujará los datos al disco al que pertenecen (para conservar el orden de los valores clave del índice agrupado), produciendo fragmentación y una sobrecarga potencialmente severa a medida que IO escribe, lo que ralentiza aún más la base de datos.

Sospecho que tienes el mismo problema con tus valores de UserRecord.

Entonces, lo que haría sería agregar una clave principal de aumento automático agrupada por separado a cada tabla y volver a trabajar en sus referencias y consultas de FK cuando sea necesario.