ডাটাবেস পরিসংখ্যান কী এবং আমি কীভাবে সেগুলি থেকে উপকৃত হতে পারি?


18

আমি পরিসংখ্যানগুলির উল্লেখ শুনেছি যা এসকিউএল সার্ভার ডিফল্টরূপে রাখে। তারা কী ট্র্যাক করছে এবং আমি কীভাবে এই তথ্যটি আমার ডেটাবেস উন্নত করতে ব্যবহার করতে পারি?

উত্তর:


21

পরিসংখ্যানগুলি কেবল গতিশীল মেটাডেটার একটি ফর্ম যা আরও ভাল সিদ্ধান্ত নিতে ক্যোরি অপ্টিমাইজারকে সহায়তা করে। উদাহরণস্বরূপ, যদি কোনও টেবিলে কেবলমাত্র কয়েক ডজন সারি থাকে, তবে কোনও সূচকগুলিতে দেখার জন্য কোনও অর্থ নেই; আপনি একটি পূর্ণ টেবিল স্ক্যান করে সর্বদা ভাল থাকবেন। তবে যদি সেই একই টেবিলটি দশ লক্ষ সারিতে বেড়ে যায়, তবে আপনি সম্ভবত সূচকটি ব্যবহার করে আরও ভাল। তবে আপনি যদি সেই কলামটিতে কেবলমাত্র কয়েকটি অনন্য মানের (যেমন এটি "সেক্স" কলাম শুধুমাত্র "এম" বা "এফ" সমন্বিত থাকতে পারে) তে সারণীটি জিজ্ঞাসা করেন তবে আসলে কোনও এফটিএস সে ক্ষেত্রে আরও ভাল হতে পারে কারণ আপনি ফলাফল সেট তৈরি করতে যেভাবেই হোক ব্লকটি পুনরুদ্ধার করতে হবে। এখন বলুন আপনার টেবিলটি 99% "এম" এবং কেবল 1% "এফ", আমাদের এক ক্ষেত্রে FTS করা উচিত বা অন্যটিতে একটি সূচক ব্যবহার করা উচিত। একই টেবিল, একই ক্যোয়ারী, টেবিলের বিষয়বস্তুর উপর নির্ভর করে সম্ভাব্যভাবে চারটি আলাদা ক্যোয়ারী পরিকল্পনা রয়েছে। এই ধরণের জিনিসগুলি "পরিসংখ্যান" এবং এগুলি প্রতিটি ডাটাবেসে স্বতন্ত্র - এমনকি অভিন্ন টেবিলে এবং সূচী কাঠামোর সাথে দুটি ডাটাবেসও পৃথক পরিসংখ্যান ধারণ করে।

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


2
+1 আমি এর থেকে আরও ভাল ব্যাখ্যা করতে পারতাম না। এটি মনে রাখা জরুরী যে পরিসংখ্যানগুলি কেবলমাত্র ডেট টু ডেট রাখলেই সহায়ক। এটি স্বয়ংক্রিয় আপডেটিং পরিসংখ্যান বা নিয়মিত নির্ধারিত (নাইট / সাপ্তাহিক) আপডেট পরিসংখ্যান কমান্ড দিয়ে করা যেতে পারে। এছাড়াও, সূচি পুনর্নির্মাণগুলি স্বয়ংক্রিয়ভাবে একটি পরিসংখ্যান আপডেট সম্পাদন করবে।
ম্যাট এম

5

এগুলি সূচক এবং / অথবা কলামগুলিতে মানগুলির বিতরণ ট্র্যাক করতে ক্যোরি অপটিমাইজার (এমএসডিএন-তে হোয়াইটপ্যাপার) ব্যবহার করে

আপনার একমাত্র উদ্বেগ নিয়মিত আপডেট করা উচিত : কেবলমাত্র ডিবি ইঞ্জিনটিকে স্টাফ করার জন্য ছেড়ে দিন


2
সবসময় না। এমন সময় আছে যখন ম্যানুয়ালি একটি পরিসংখ্যান তৈরি করা কোয়েরি পারফরম্যান্সে সহায়তা করতে পারে।
mrdenny

@ এমরডেনি: বাস্তব জীবনে আপনি কতবার এটি করেছেন? খুবই কদাচিৎ. আমি আইআইআরসি করিনি। যদি এটির পরিসংখ্যানের প্রয়োজন হয় তবে এটির জন্য একটি সূচকের প্রয়োজন হতে পারে, যার পরিসংখ্যান রয়েছে। আপনি কেবলমাত্র ক্রিয়েট স্ট্যাটিকস অনুযায়ী কলামের পরিসংখ্যান তৈরি করতে পারেন । প্রদত্ত ওপিকে পরিসংখ্যান সম্পর্কে জিজ্ঞাসা করতে হয়েছিল আমি বললাম এটি করা একটি উপযুক্ত জিনিস।
gbn

1
আমি এটি কয়েক বার করেছি, তবে প্রায়শই না। আমি আপনার "আপনার একমাত্র উদ্বেগ নিয়মিত আপডেট করা উচিত" বিবৃতিটির বিরুদ্ধে ছিলাম, কারণ পরিসংখ্যান আপডেট করা একমাত্র জিনিস নয়।
mrdenny
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.