অব্যবহৃত সূচক সেরা অভ্যাস


11

এই ক্যোয়ারির উপর ভিত্তি করে, যদি আমি মোট পাঠকদের স্বল্প পরিমাণ (1 বা 2 এর মতো 0 বা 0 এর নিকটবর্তী) এবং ব্যবহারকারীর আপডেটের একটি উচ্চ বা মাঝারি পরিমাণে (আমি এই ক্যোয়ারির সাথে সন্নিবেশ বা মোছার সন্ধান করতে পারি না) দেখতে পাই একটি বৃহত সারির গণনা, আমার তাত্ত্বিকভাবে সূচিটি সরিয়ে ফেলা উচিত ।

SELECT DISTINCT
    OBJECT_NAME(s.[object_id]) AS ObjectName
       , p.rows TableRows
       , i.name AS [INDEX NAME]
       , (user_seeks + user_scans + user_lookups) AS TotalReads
       , user_updates UserUpdates
FROM sys.dm_db_index_usage_stats s
    INNER JOIN sys.indexes i ON i.[object_id] = s.[object_id] 
        AND i.index_id = s.index_id 
    INNER JOIN sys.partitions p ON p.object_id = i.object_id
WHERE OBJECTPROPERTY(s.[object_id],'IsUserTable') = 1
       AND s.database_id = DB_ID()
       AND i.name IS NOT NULL
ORDER BY (user_seeks + user_scans + user_lookups) ASC

আমি এখানে এই অনুমানের নির্ভুলতা পরীক্ষা করতে চাই। উদাহরণস্বরূপ, এমন একটি সূচক যা এক বছরেরও বেশি সময় ধরে বিদ্যমান কিন্তু কখনও পড়েনি, তবে অত্যন্ত আপডেট হয়েছে, মনে হচ্ছে এটি খারাপ ধারণা হবে। এমন কোনও দৃশ্য আছে যেখানে এই অনুমানটি অবৈধ?

উত্তর:


15

এই ডিএমভি কেবলমাত্র শেষ এসকিউএল সার্ভার পুনরায় চালু হওয়ার পরে পরিসংখ্যান বজায় রাখে; দৃশ্যটি সম্পূর্ণরূপে মুছে যায় এবং সবকিছু স্ক্র্যাচ থেকে শুরু হয়।

আরও গুরুত্বপূর্ণ, কোনও নির্দিষ্ট সূচকের জন্য এই দৃশ্যের সারিগুলি সেই সূচকটি পুনর্নির্মাণ করা হয় (তবে এটি পুনর্গঠিত হলে নয়)। আপনি যদি নিয়মিত সূচকের রক্ষণাবেক্ষণ সম্পাদন করে থাকেন তবে রক্ষণাবেক্ষণের লগগুলি দেখার জন্য এবং আপনি যে সূচকগুলি বাদ দেওয়ার বিষয়টি বিবেচনা করছেন তা কোনওটিই সম্প্রতি পুনর্নির্মাণ করা হয়েছে কিনা তা কার্যকর হতে পারে।

সুতরাং, সর্বশেষ পুনঃসূচনা হওয়ার পরে লো রিডের উপর ভিত্তি করে সিদ্ধান্ত নেওয়া, যখন শেষ পুনরায় আরম্ভটি গত সপ্তাহের প্যাচ মঙ্গলবারের আপডেট বা গতকালের সার্ভিস প্যাকের জন্য হতে পারে, তখন বুদ্ধিমান হতে পারে না। বা যখন আপনি সূচি রক্ষণাবেক্ষণ করছেন, শেষ পুনর্নির্মাণের পরে। একটি প্রতিবেদন থাকতে পারে যা কেবল মাসে একবার, বা এক চতুর্থাংশ, বা বছরে একবার চালানো হয় এবং এটি একটি গুরুত্বপূর্ণ এবং অধৈর্য ব্যক্তি দ্বারা চালিত হয়।

তদুপরি, একটি সূচক এমন কিছু জন্য থাকতে পারে যা ভবিষ্যতে ঘটবে যা সম্পর্কে আপনি জানেন না - করের মরসুমের জন্য তৈরি করা ধারাবাহিক প্রতিবেদন, বলা যাক।

সুতরাং, আমার পরামর্শটি হ'ল:

অপসারণের জন্য প্রার্থী সূচীগুলি সনাক্ত করতে ডিএমভি ব্যবহার করুন , কিন্তু কোনও বুদ্বুদে সিদ্ধান্ত নেবেন না - আপনাকে সূচি ফেলে দেওয়ার আগে কেন এটি বিদ্যমান থাকতে পারে তা নির্ধারণ করার জন্য আপনাকে লেগওয়ার্ক করতে হবে, যদিও মনে হয় এটি বর্তমানে ব্যবহার হচ্ছে না like ।


@ অ্যারনবার্ট্র্যান্ড তাই কি কোনও ইতিহাস ট্র্যাক করা (শেষ পুনরায় আরম্ভের সময় সহ) এটির জন্য একটি ভাল সংযোজন হতে পারে? উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ।
ডাবলভু

1
@ ডাবলভু হ্যাঁ, সূচকের ব্যবহারের ইতিহাসের স্ন্যাপশটগুলি বজায় রাখা সম্ভবত যথাযথ হবে যাতে আপনি শিক্ষিত সিদ্ধান্ত নিতে পারেন যা এমন কোনও কিছু দ্বারা প্রভাবিত হয় না যা ব্যবহারের পরিসংখ্যান ডিএমভির আউটপুট পরিবর্তন করতে পারে।
অ্যারন বার্ট্র্যান্ড

2

হ্যাঁ, ভিউতে কেবল সর্বশেষ পুনরায় বুট হওয়ার পরে পরিসংখ্যান রয়েছে। হ্রাসে সহায়তা করতে যে আমি সার্ভারটি পুনরায় চালু হওয়ার আগে আমাদের রক্ষণাবেক্ষণ উইন্ডোটিতে প্রতি মাসে তথ্য ক্যাপচার করা শুরু করার আগে আপনি সকালে একটি মাসিক পোস্ট করেছিলেন তার মতো একটি ক্যোয়ারী চালিয়েছিল এমন একটি কাজ সেটআপ করব। এটি আমাকে আরও পিছনে যেতে এবং সময়ের সাথে ট্রেন্ডগুলি দেখার অনুমতি দেয়। আমার একটি দ্বিতীয় ক্যোয়ারীও ছিল যা সম্ভবত অনুপস্থিত সূচিপত্রগুলির সন্ধানে দৌড়েছিল।

আরেকটি বিষয় বিবেচনা করতে হবে যা অন্যান্য সূচী (গুলি) টেবিলে রয়েছে। এটি সম্ভবত ব্যবহার করা হচ্ছে না কারণ এটি বেশিরভাগই বা সম্পূর্ণ অন্য কোনও সূচকের সদৃশ। হ্যাঁ. এসকিউএল সার্ভার আপনাকে দুটি পৃথক তবে অভিন্ন সূচক তৈরি করতে দেয় যাতে এটি সম্পূর্ণ অপ্রয়োজনীয় হওয়া সম্ভব।

আপনি যদি সেই সূচিটি সরিয়ে ফেলা হয় যে সূচিটি ব্যবহার করা হয়েছিল এমন ক্যোয়ারির পরিকল্পনার কী কী পরিণতি হতে পারে তাও আপনি দেখতে পারেন। এটি ব্যবহারের জন্য অন্য সূচি থাকতে পারে বা এটি একটি পুরো টেবিল স্ক্যানে ফিরে যেতে পারে।

সূচকগুলি বিজ্ঞানের মতোই শিল্প হিসাবে শেষ হয় কারণ কী চালানো যেতে পারে সে সম্পর্কে সমস্ত কিছু জানা সত্যিই শক্ত এবং এটি যেভাবেই ঘন ঘন পরিবর্তিত হয়।

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