Tôi có một vài bảng (User & UserRecord) trong cơ sở dữ liệu của mình bị phân mảnh (như 99%) và làm cho toàn bộ cơ sở dữ liệu và do đó trang web bị dừng lại.Vấn đề phân mảnh máy chủ SQL
UserRecord giống như ảnh chụp nhanh người dùng đó tại một thời điểm. Người dùng giống như bản ghi chính cho người dùng đó. Người dùng có từ 0 đến nhiều UserRecords. Người dùng có khoảng một triệu hàng, UserRecord có khoảng 2,5 triệu. Những bảng này được viết rất nhiều. Họ cũng đang được tìm kiếm rất nhiều. Cả hai đều sẽ lớn hơn rất nhiều. Các chỉ mục chính bị phân mảnh nặng là các khóa chính của bảng User và UserRecord.
DB là SQL Server 2012 và tôi đang sử dụng Khung thực thể và tôi không sử dụng bất kỳ quy trình được lưu trữ nào.
Bàn giống như thế này:
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
(không chắc chắn nếu Danh sách này là quan trọng hay không nhưng nghĩ rằng tôi muốn đưa nó vì nó có liên quan đến User_Record Danh sách có từ 0 đến nhiều UserRecords.)
Chúng tôi đã thiết lập một kế hoạch bảo trì SQL để xây dựng lại các chỉ mục hàng ngày mà không giúp đỡ, nhưng đôi khi không đủ.
Một người bạn đã đề xuất chúng tôi sử dụng hai cơ sở dữ liệu, một để đọc, một để viết và chúng tôi đồng bộ hóa DB đọc từ DB viết. Không phải là tôi biết bất cứ điều gì về việc này, nhưng vấn đề đầu tiên tôi thấy với giải pháp này là chúng ta cần cập nhật dữ liệu khi xem trang web. Ví dụ: nếu chúng tôi cập nhật chi tiết người dùng hoặc UserRecord, chúng tôi muốn xem những thay đổi đó ngay lập tức.
Có ai có bất kỳ đề xuất nào về cách tôi có thể khắc phục sự cố này trước khi nó không thể kiểm soát được không?
Định nghĩa bảng là gì? Bạn có sử dụng GUID làm khóa chính không? –
Bạn có habe một chỉ số nhóm trên một cột uniqueidentifier? điều này thường leeds để phân mảnh sau khi một số chèn ... bởi vì các giá trị là ngẫu nhiên ... – PrfctByDsgn
Tôi đã thêm một số chi tiết hơn cho câu hỏi – Owen