Klustrade index styr ordningen för data på DISK:n. Detta är en av huvudorsakerna till att det vanligtvis rekommenderas att du ställer in en alltid ökande heltalsnyckel för att fungera som det klustrade indexet. På detta sätt läggs mer data till i tabellen i slutet av befintliga data.
Om det inte är ett automatiskt ökande antal och nya rader kan innehålla värden som skulle ordnas någonstans mellan befintliga värden, så kommer SQL Server i princip att skjuta data till disken där den hör hemma (för att behålla ordningen på de klustrade indexnyckelvärdena), vilket skapar fragmentering och potentiellt allvarliga overhead när IO skriver saktar ner databasen ytterligare.
Jag misstänker att du har samma problem med dina UserRecord-värden.
Så vad jag skulle göra är att lägga till en separat klustrad autoökande primärnyckel till varje tabell och omarbeta dina FK-referenser och frågor vid behov.