আমি সম্প্রতি ব্রেন্টওজার আনলিস্টেড http://www.brentozar.com/blitzindex/ এ লোকের কাছ থেকে একটি দুর্দান্ত ফ্রি স্ক্রিপ্ট আবিষ্কার করেছি
কোন সূচকের অস্তিত্ব রয়েছে, কতবার ব্যবহার করা হয় এবং কোয়েরি ইঞ্জিন কতবার এমন একটি সূচক সন্ধান করে যা অস্তিত্বহীন তা নিয়ে এটি কিছু ভাল বিশ্লেষণ করে।
এটি গাইডেন্স সাধারণত ভাল। কখনও কখনও এটি ধারণাগুলির কিছুটা অতিরিক্ত প্রস্তাব দেয় tive আমি এখনও অবধি সাধারণভাবে নিম্নলিখিতগুলি সম্পাদন করেছি:
- সরানো সূচকগুলি যা কখনও পড়েনি (বা মাসে মাসে 50 বারেরও কম হতে পারে)।
- বিদেশী কী এবং ক্ষেত্রগুলিতে সর্বাধিক সুস্পষ্ট সূচী যুক্ত হয়েছে আমি জানি আমরা প্রচুর ব্যবহার করি।
আমি সমস্ত প্রস্তাবিত সূচকগুলি যোগ করি নি, এবং এক সপ্তাহ পরে ফিরে এসেছি যে অনুসন্ধানের ইঞ্জিন পরিবর্তে অন্য কয়েকটি নতুন সূচী ব্যবহার করছে বলে তারা আর সুপারিশ করা হয়নি!
সাধারণত আপনার সূচী এড়ানো উচিত:
- খুব ছোট টেবিল (50 থেকে 200 রেকর্ডেরও কম): প্রায়শই ইঞ্জিনটি দ্রুত হয় যদি এটি সূচকটি লোড করে, পড়তে, প্রক্রিয়াজাতকরণ ইত্যাদির চেয়ে টেবিলটি স্ক্যান করে if
- প্রথম উল্লিখিত কলামে লো কার্ডিনালিটি ( http://en.wikedia.org/wiki/Cardinality_(SQL_statements) সহ কলামগুলিতে সূচীগুলি এড়িয়ে চলুন । উদাহরণস্বরূপ, লিঙ্গ ক্ষেত্রের ইনডেক্সিং (এম / এফ) খুব কম ব্যবহার হয়, এটি টেবিলটি স্ক্যান করতে এবং match 50% এর সাথে মিল খুঁজে পাওয়া ঠিক যেমন ব্যবহারিক। যদি সূচকে আরও নির্দিষ্ট কিছু (যেমন [জন্মের তারিখ, লিঙ্গ]) এর পরে এটি তালিকাভুক্ত করা হয় তবে এটি আরও ভাল - আপনি নির্দিষ্ট সময়ের মধ্যে সমস্ত পুরুষের জন্ম নিতে পারেন।
ক্লাস্টার্ড সূচকগুলি ভাল - সাধারণত এগুলি আপনার প্রাথমিক কী এর উপর ভিত্তি করে। তারা ডাটাবেস ইঞ্জিনটিকে ডিস্কে ডেটাটি যাতে ভালভাবে রাখে তেমন সহায়তা করে। একটি বৃহত টেবিলের জন্য এটি বোঝার জন্য খুব প্রয়োজনীয়, কারণ একটি ভাল ক্লাস্টারড সূচক প্রায়শই সারণিটি স্থান দখল করে।
আমি কিছু টেবিল 900MB থেকে 400MB এ কমিয়েছি, কেবল কারণ এগুলি আগে থেকেই অস্ট্রাস্ট্রকের স্তূপ ছিল।
http://msdn.microsoft.com/en-us/library/aa933131(v=sql.80).aspx
পুনঃসংগঠিত / পুনর্নির্মাণ
খণ্ডিত সূচীগুলির জন্য আপনার খোঁজ করা উচিত। কিছুটা টুকরো টুকরো ঠিক আছে, অবসেসিভ হবে না! পুনর্গঠন এবং পুনর্নির্মাণের মধ্যে পার্থক্যটি জানুন http://technet.microsoft.com/en-us/library/ms189858.aspx !
নিয়মিত পর্যালোচনা
অনুসন্ধানগুলি পরিবর্তন হয়, ডেটা ভলিউম পরিবর্তন হয়, নতুন বৈশিষ্ট্য যুক্ত হয়, পুরানোগুলি সরানো হয়। আপনি মাসে একবার তাদের দিকে তাকাতে হবে (বা আরও বেশি পরিমাণে যদি আপনার উচ্চ পরিমাণ থাকে) এবং আপনি কোথায় ডাটাবেসটি সাহায্য করতে পারেন তা সন্ধান করতে হবে!
কতগুলো
সাম্প্রতিক একটি ভিডিওতে ব্রেন্ট সুপারিশ করেছে (সাধারণত) প্রচুর লেখার (যেমন অর্ডার টেবিল) সহ একটি টেবিলে আরও 5 টি সূচী না থাকে এবং 10 এর বেশি হয় না যদি এটি লিখিত (যেমন বিশ্লেষণের জন্য লগিং টেবিল) এর চেয়ে অনেক বেশি পড়তে হয় তবে http: / /www.youtube.com/watch?v=gOsflkQkHjg
সার্বিক
এটা নির্ভর করে!
আপনার মাইলেজ ডাটাবেস অনুযায়ী পরিবর্তিত হয়। আপনার (এখন / ভবিষ্যতের) বড় টেবিলগুলিতে সুস্পষ্ট (কর্মচারী নাম, আদেশের তারিখ ইত্যাদি) Coverেকে রাখুন। পর্যবেক্ষণ করুন, পর্যালোচনা করুন এবং প্রয়োজনীয় হিসাবে সামঞ্জস্য করুন। আপনার ডাটাবেস পরিচালনা করার সময় এটি আপনার রুটিন চেকলিস্টের অংশ হওয়া উচিত :)
আশাকরি এটা সাহায্য করবে!