Клъстерираните индекси контролират реда на данните на ДИСКА. Това е една от основните причини, поради които обикновено се препоръчва да настроите винаги нарастващ ключ за цяло число, който да действа като клъстерен индекс. По този начин, когато повече данни се добавят към таблицата, те се добавят в края на текущо съществуващите данни.
Ако това не е автоматично нарастващо число и новите редове може да съдържат стойности, които биха били подредени някъде между съществуващите стойности, тогава SQL Server основно ще избута данните на диска, където принадлежат (за да запази реда на ключовите стойности на клъстерирания индекс), създавайки фрагментация и потенциално сериозни режийни разходи, тъй като IO записва допълнително забавяне на базата данни.
Подозирам, че имате същия проблем със стойностите на UserRecord.
Така че това, което бих направил, е да добавя отделен клъстерен автоматично увеличаващ се първичен ключ към всяка таблица и да преработя вашите FK препратки и заявки, където е необходимо.