অটো আপডেটের পরিসংখ্যানকে মিথ্যা কেন সেট করবেন?


10

বিস্তৃত অধিগ্রহণ প্রকল্পের অংশ হিসাবে আমি এসকিউএল সার্ভারের প্রায় 20 টি উদাহরণ পেয়েছি। আমি পারফরম্যান্স মূল্যায়নের প্রক্রিয়ায় রয়েছি এবং রক্ষণাবেক্ষণের পরিকল্পনাগুলি যেভাবে কার্যকর করা হয়েছে তা আমি পছন্দ করি না।

আমি প্রতিদিন কম্বল সূচক পুনর্নির্মাণগুলি দেখতে পাচ্ছি (আমি এটির সাথে ডিল করতে পারি) এবং পরিসংখ্যানগুলির দৈনিক ম্যানুয়াল আপডেটও।

ডাটাবেসের প্রায় অর্ধেকটি অটো আপডেট পরিসংখ্যান = মিথ্যাতে সেট করা হয়েছে, যে কারণে আমাকে বলা হয়েছে যে এটি 'পারফরম্যান্স ইস্যু' হ্রাস করা ...

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

এই সেটটিকে ভুয়া হিসাবে রাখলে কী সুবিধা হবে তা কি কেউ ব্যাখ্যা করতে পারেন, তবে পরিবর্তে একটি দৈনিক ম্যানুয়াল আপডেট করে?

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

উত্তর:


6

আপনি সঠিক, আমি এটিও বিশ্বাস করি যে বেশিরভাগ ক্ষেত্রে Auto Update statisticsসত্যটি সেট করা উচিত আমাদের এসকিউএল সার্ভারকে কখন স্ট্যাটাস আপডেট করতে হবে এবং আমাকে বিশ্বাস করুন এটি ভাল কাজ করে। যখন এটি সত্য সেট করা থাকে তা নিশ্চিত করে ক্ষেত্রের ডেটা বিতরণ সম্পর্কে পরিসংখ্যানগুলি আপডেট হয়েছে যা শেষ পর্যন্ত অপ্টিমাইজারকে আরও ভাল পরিকল্পনা প্রস্তুত করতে সহায়তা করবে। এখানে লক্ষণীয় গুরুত্বপূর্ণ বিষয় হ'ল অটো আপডেটের পরিসংখ্যান ফায়ার যখন 20% ডাটা সারণীতে পরিবর্তিত হয়। সুতরাং আপনার উচিত হবে না যে 100 কে সারি সহ কোনও টেবিলে যদি 10 টি সারি আপডেট করা হয় তবে স্থিতির আপডেটটি আগুনে জ্বলতে পারে।

আরো গভীর বিশ্লেষণ ব্লগে পল Randal দ্বারা সম্পন্ন করা হয় বোঝাপড়া কখন পরিসংখ্যান উইল স্বয়ংক্রিয়ভাবে আপডেট । এই বিকল্পটি সত্য হিসাবে সেট করা থাকলে আমি কোনও ত্রুটি দেখিনি। হ্যাঁ এই বিকল্পটি সত্যে সেট হয়ে গেলে আপনি কিছু আই / ও ক্রিয়াকলাপ দেখতে পাবেন।

ব্লগটি থেকে কোনটি আঁকতে পারে তা গুরুত্বপূর্ণ সিদ্ধান্ত

কোনও পরিসংখ্যান কোনও পরিবর্তনের ফলাফল হিসাবে পুরানো হয়ে গেলেও, পরিবর্তনটি সম্পূর্ণ হওয়ার পরে এটি স্বয়ংক্রিয়ভাবে আপডেট হবে না। পরের বার কোনও ক্যোয়ারী প্ল্যান এটি ব্যবহার করার পরে পরিসংখ্যানগুলি স্বয়ংক্রিয়ভাবে আপডেট হবে।

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


10

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

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


আমি এমন একটি উদাহরণের কথা চিন্তা করার চেষ্টা করছিলাম যেখানে অটো_আপডেট_স্ট্যাটগুলি আসলে সমস্যা সৃষ্টি করে এবং এটি দুর্দান্ত একটি - আমি খুব ভাল কাজের আশেপাশের জন্য এটি দু'বার উপস্থাপন করতে পারি (যদি আমি পারতাম) তবে সাধারণ পরিসংখ্যানের বিলম্ব এড়ানো যেটি সহসা সঙ্গে আসে ক্যোয়ারী
স্কেলরিয়ান

1
আমার বৃহত্তর ডাটাবেসগুলির (ভিএলডিবি) পরিস্থিতি রয়েছে, যে অটো_আপডেটের পরিসংখ্যান বিকল্পটি চালু আছে এবং এসকিউএল কার্যদিবসের ইনপোর্টুন সময়গুলি বন্ধ করবে। আমি এটিকে বন্ধ করে দিয়েছি এবং নির্দিষ্ট টেবিল এবং পরিসংখ্যানগুলিতে ম্যানুয়াল আপডেটগুলি সম্পর্কে আরও কৌশলগত হতে হয়েছিল, সার্ভারটিকে টেবিলগুলি কখন এবং কখন নির্ধারণ করার পরিবর্তে। এটি আমার সিস্টেমটিকে আরও অনুমানযোগ্য করে তুলেছে, তবে উচ্চতর পরিচালন ব্যয়ে (কোনও সন্দেহ নেই), তবে আপডেটের কার্যগুলিতে প্রবেশের বিষয়টি এড়াতে ঘটতে হবে। টিপিক্যাল ইনডেক্স / স্ট্যাটাস ম্যানেজমেন্ট সহ সিস্টেমটি যদি "কম্বলিং" করে থাকে তবে এটি ছেড়ে দিন। অন্যথায়, কিছু পরিস্থিতিতে বিশদ কৌশল প্রয়োজন হতে পারে।
স্ন্যাপজ্যাগ

6

সাধারণত আমি বলব যে স্বয়ংক্রিয় আপডেটের পরিসংখ্যানগুলি থাকা উপকারী। তবে যে কোনও সেটিংয়ের মতো, আপনি এটিকে চালু বা বন্ধ করতে পারেন এমন কারণও রয়েছে।

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

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

অথবা হতে পারে আপনার কেবল একটি লেখার-ভারী কাজের চাপ রয়েছে। বা রিডগুলি সাধারণত পূর্ণ স্ক্যান হয় যেখানে পরিসংখ্যান অত্যন্ত গুরুত্বপূর্ণ নয়।

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