একটি সময় মাত্রা সারণীতে সূচাগুলি কোথায় রাখা উচিত?


10

সূচকগুলি সম্পর্কে এই ওয়েবসাইট থেকে প্রশ্নোত্তরগুলি পড়ার পরে, আমার মনে একটি প্রশ্ন এসেছিল।

কী, যদি এক সময় মাত্রা টেবিলটি নিম্ন স্তরের গ্রানুলারিটির সাথে দিন হয়। সূচি কোথায় রাখা উচিত?

প্রশ্নে র্যান্ডি মেল্ডার: আরডিবিএমএসে "সূচক" এর অর্থ কী? বলেছেন:

একটি সূচিটিকে "বিষয়বস্তুর সারণী" হিসাবে ভাবুন ... এটি কোনও ফাইলের পজিশনের একটি অর্ডার করা তালিকা, ওরফে অফসেটগুলি

সময় মাত্রা ক্ষেত্রে, বেশিরভাগ তথ্য গবেষণা একটি নির্দিষ্ট দিন, একটি নির্দিষ্ট সপ্তাহ, একটি নির্দিষ্ট মাস বা একটি নির্দিষ্ট ত্রৈমাসিকের জন্য করা যেতে পারে যদি টাইম টেবিলটি কোনও অনন্য বছরের জন্য সারা দিন সঞ্চয় করে রাখে ।

আমার প্রশ্ন: একটি কি এই সমস্ত ক্ষেত্রের জন্য সূচি স্থাপন করা উচিত?

দিবসটি অনন্য বলে মনে হয় সুতরাং এটির জন্য আমি সূচকগুলির ব্যবহারটি পুরোপুরি বুঝতে পারি। তবে এক সপ্তাহের আইডিটিতে occ টি উপস্থিতি থাকবে , এক মাসের আইডিতে 30/31 টি উপস্থিতি থাকবে , একটি চতুর্থাংশ আইডিতে কমবেশি 120 টি উপস্থিতি থাকবে

  • এখনও কি এই ক্ষেত্রগুলির জন্য সূচি রাখা উচিত?
  • এটি এখনও কার্যকর হবে?

আমি আপনাকে জিজ্ঞাসা করছি কারণ একই প্রশ্নে ডেভিড স্পিললেট বলেছেন:

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

তাই সময় মাত্রা ক্ষেত্রে সবচেয়ে ভাল বিবেচনা করা হবে?

উত্তর:


7

আপনি সম্ভবত লেখার সমস্যাগুলির বিষয়গুলিতে দৌড়াবেন না, কারণ আমি ধরে নিয়েছি এটি একবারে (বা বছরে একবার) তৈরি হয়েছিল, এবং তার পরেও স্পর্শ করা হয়নি।

তবে আপনি যদি সপ্তাহে অনুসন্ধান করে থাকেন তবে একটি সূচক ব্যবহার সম্ভবত বাধা হয়ে দাঁড়াবে ... সমস্যাটি হল, যদি সূচকটি ব্যবহার করা হয় তবে এটি প্রথমে স্ক্যান করতে পারে এবং তারপরে প্রতিটি রেকর্ড স্বতন্ত্রভাবে টেবিলের বাইরে নিয়ে যায়, যখন আপনি ' প্রায় ৫-২০% রেকর্ডের বাইরে টানছে, একটি পূর্ণ টেবিল স্ক্যান করা সাধারণত দ্রুততর হয় এবং তারপরে আপনি যে রেকর্ডগুলি বিবেচনা করেন না তা ফেলে দিন।

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

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


5

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


আমার ব্যতীত অন্য কেউ কি প্রতিবার ডেটাবেসগুলির সাথে সম্পর্কিত বা "এটি নির্ভর করে" বলে বা পড়লে পল রান্ডালের কণ্ঠস্বর শুনতে পায়? : পি
অ্যান্ড্রু এসকিউএল

3

সাধারণ নিয়মটি হ'ল সূচকটি যত বেশি নির্বাচিত হয় (সারণিটি সারণীর সারিগুলির সংখ্যা দ্বারা বিভাজিত একটি কলামে অনন্য মানগুলির সংখ্যার হিসাবে সংজ্ঞায়িত হচ্ছে), তত বেশি সম্ভাবনা থাকে যে ইঞ্জিন যদি কোনও জিজ্ঞাসা করে তবে সূচকটি ব্যবহার করবে যেখানে ধারাটিতে কলামটি ব্যবহার করে।

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


1

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

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

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