আমার কাছে 100.000 খেলোয়াড়ের জন্য একটি হাইস্কোর টেবিল রয়েছে যা প্রতি খেলোয়াড়ের জন্য একটি রেকর্ড সহ দিনে 2 বার .োকানো হচ্ছে। দিন শেষে সেই টেবিলের সূচকের জন্য সূচি বিভাজন 99%। সেটিংস টুইট করে এটি প্রতিরোধ করার কোনও উপায় আছে কি?
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নেই , তবে সেখানে আপনার প্রয়োজন নেই। এটি কেবল স্থান নষ্ট করবে। সমস্ত কলামগুলি দৈর্ঘ্য স্থির করে দেওয়া থাকে যাতে আপডেটে একটি সারি প্রসারিত না হতে পারে এবং সারণিগুলির মাঝখানে সন্নিবেশগুলি ঘটতে পারে না। 99% অন্যান্য সূচকের জন্যও অপ্রত্যাশিতভাবে উচ্চ বলে মনে হচ্ছে। প্রতিটি সূচীতে কত পৃষ্ঠা রয়েছে?
sys.dm_db_index_physical_statsআউটপুটটি দেখাতে পারবেন ?