Problemas de fragmentación de SQL Server

Tengo un par de tablas (User & UserRecord) en mi base de datos que se fragmentan extremadamente (como 99%) y causan que toda la base de datos y, por lo tanto, el sitio web se detengan.

UserRecord es una especie de instantánea de ese usuario en un momento dado. El usuario es como el registro maestro para ese usuario. El usuario tiene 0 a muchos UserRecords. El usuario tiene alrededor de un millón de filas, UserRecord tiene alrededor de 2.5 millones. Estas tablas se escriben mucho. También están siendo buscados mucho. Ambos van a ser mucho más grandes. Los índices principales que se fragmentan mal son las claves principales de las tablas User y UserRecord.

La base de datos es SQL Server 2012 y estoy usando Entity Framework y no estoy usando ningún procedimiento almacenado.

Las mesas se ven algo así:

USER
UserName string PK ClusteredIndex
FirstName string
LastName string
+SeveralMoreRows

USER_RECORD
UserRecordId int PK ClusteredIndex
ListId int FK(List)
UserName string FK(User) NonClusteredIndex
Community string NonClusteredIndex
DateCreated datetime
+LotsMoreRows

LIST 
ListId int PK & ClusteredIndex
Name string
DateCreated datetime

(No estoy seguro de si la Lista es importante o no, pero pensé que la incluiría porque está relacionada con User_Record. La lista tiene 0 para muchos UserRecords)

Hemos establecido un plan de mantenimiento de SQL para reconstruir los índices diariamente, lo que sí ayuda, pero a veces no es suficiente.

Un amigo nos ha sugerido que utilicemos dos bases de datos, una para leer y otra para escribir, y sincronizaremos la base de datos de lectura desde la base de datos de escritura. No es que sepa nada sobre esto, pero el primer problema que veo con esta solución es que necesitamos datos actualizados al ver el sitio. Por ejemplo, si actualizamos los detalles de un usuario o un registro de usuario, queremos ver esos cambios de inmediato.

¿Alguien tiene alguna sugerencia sobre cómo puedo solucionar este problema antes de que se salga de control?

Respuestas a la pregunta(1)

Su respuesta a la pregunta