Các chỉ mục được phân cụm kiểm soát thứ tự của dữ liệu trên ĐĨA. Đây là một trong những lý do chính tại sao bạn thường nên thiết lập một khóa số nguyên luôn tăng để hoạt động như một chỉ mục được phân nhóm. Bằng cách này khi nhiều dữ liệu được thêm vào bảng, chúng sẽ được thêm vào cuối dữ liệu hiện có.
Nếu nó không phải là một số tự động tăng và các hàng mới có thể chứa các giá trị sẽ được sắp xếp ở đâu đó giữa các giá trị hiện có, thì SQL Server về cơ bản sẽ đẩy dữ liệu lên đĩa nơi nó thuộc về (để giữ lại thứ tự của các giá trị khóa chỉ mục được nhóm lại), tạo ra sự phân mảnh và chi phí tiềm ẩn nghiêm trọng khi IO viết tiếp tục làm chậm cơ sở dữ liệu.
Tôi nghi ngờ bạn gặp vấn đề tương tự với các giá trị UserRecord của mình.
Vì vậy, những gì tôi sẽ làm, là thêm một khóa chính tự động tăng theo cụm riêng biệt vào mỗi bảng và làm lại các tham chiếu và truy vấn FK của bạn khi cần thiết.