কীভাবে দৈনিক সূচক খণ্ডকে 99% রোধ করা যায়


11

আমার কাছে 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

1
নির্বোধ প্রশ্ন, তবে সমস্ত ভিত্তি কভার - আপনি কি প্রতিদিন পুনর্নির্মাণ / পুনর্গঠন করছেন?
জেএইচএফবি

টেবিল ডিডিএল ছাড়া যে কেউ পোস্টিং অনুমান করবে। আপনি কি জিআইডি কে প্রাথমিক কী হিসাবে ব্যবহার করছেন?
এসকিউএল লার্নার

আমি এখনই প্রতিদিন পুনর্নির্মাণ করছি তবে আমি অবাক হয়েছি যে আমি কীভাবে এই ডেটাটি বিকশিত হতে পারি সে সম্পর্কে খুব ভাল ধারণা করতে পারছি বলেই আমি প্রতিদিন এটি ঘটতে বাধা দিতে পারি।
ওলে

1
আপনি কীভাবে খণ্ডন স্তর নির্ধারণ করছেন? ক্লাস্টারড ইনডেক্সের জন্য আমি মোটেই বেশি যৌক্তিক বিভাজন আশা করব না। কিছু অভ্যন্তরীণ টুকরো টুকরো টুকরো টুকরো টুকরো করার দরকার FILLFACTOR = 80নেই , তবে সেখানে আপনার প্রয়োজন নেই। এটি কেবল স্থান নষ্ট করবে। সমস্ত কলামগুলি দৈর্ঘ্য স্থির করে দেওয়া থাকে যাতে আপডেটে একটি সারি প্রসারিত না হতে পারে এবং সারণিগুলির মাঝখানে সন্নিবেশগুলি ঘটতে পারে না। 99% অন্যান্য সূচকের জন্যও অপ্রত্যাশিতভাবে উচ্চ বলে মনে হচ্ছে। প্রতিটি সূচীতে কত পৃষ্ঠা রয়েছে?
মার্টিন স্মিথ

প্রতিদিন পুনর্নির্মাণের পরে 99% সত্যিই কিছুটা ঘটবে, আপনি কি নিজের sys.dm_db_index_physical_statsআউটপুটটি দেখাতে পারবেন ?
মার্টিন স্মিথ

উত্তর:


3

আমি মনে করি আপনার উপরের উচ্চতর FILLFACTORসেটিংস চেষ্টা করা উচিত HighScore_RoundGroup_Nidx(উদাঃ 50 বা 40)। আপনি FILLFACTOR0 বা 100 এ সেট করতে পারেন PRIMARY KEYকারণ এটি খণ্ড না হওয়া উচিত যদি এটি এখনও করে FILLFACTORতবে সহায়তা করে না কারণ সদ্য বরাদ্দকৃত পৃষ্ঠাগুলি অন্যান্য সদ্য বরাদ্দকৃত পৃষ্ঠাগুলির সাথে ইন্টারলিভ করে। এটি একটি সুপরিচিত এসকিউএল সার্ভার সমস্যা। আপনি এই সূচকটিকে নিজের ফাইলগ্রুপে স্থানান্তর করতে পারেন যা এই সমস্যাটি থামিয়ে দেবে।


2

সম্ভবত আপনি ভাবেন যে আপনি পুনর্নির্মাণ করছেন তবে সূচিটি পুনর্নির্মাণ হয় না কারণ সূচকটি যথেষ্ট বড় নয়।

এই প্রশ্নটি একবার দেখুন, কেন সূচি পুনরায় বিলম্ব সূচকের খণ্ডন হ্রাস করে না?

আপনি কি পুনর্গঠনের পরে খণ্ড পরীক্ষা করে দেখেছেন? এটি কি আসলেই Defragmented?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.