Tôi có một bảng điểm cao cho 100.000 người chơi đang được chèn vào 2 lần một ngày với một bản ghi cho mỗi người chơi. Vào cuối ngày, sự phân mảnh chỉ mục cho các chỉ mục trong bảng đó là 99%. Có cách nào để ngăn chặn điều này bằng cách điều chỉnh các cài đặt không?
CREATE TABLE HighScore(
[id] [int] IDENTITY(1,1) NOT NULL,
[user] [int] NULL,
[player] [int] NULL,
[round] [tinyint] NULL,
[group] [int] NULL,
[rank] [int] NULL,
[delta] [int] NULL,
[roundpoints] [int] NULL,
[totalpoints] [int] NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
CREATE NONCLUSTERED INDEX [HighScore_RoundGroup_Nidx] ON .[HighScore]
(
[round] ASC,
[group] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
GO
FILLFACTOR = 80
ở đó. Nó sẽ chỉ lãng phí không gian. Tất cả các cột có độ dài cố định để một hàng không thể mở rộng khi cập nhật và việc chèn không thể xảy ra ở giữa bảng. 99% dường như cao bất ngờ cho các chỉ số khác quá. Có bao nhiêu trang trong mỗi chỉ mục?
sys.dm_db_index_physical_stats
đầu ra của bạn ?