ধীরে ধীরে অনুসন্ধানের সময় দেখা গিয়েছিল যে মৃত্যুদণ্ড কার্যকর করার পরিকল্পনাটি ব্যতিক্রমীভাবে সাবমোটিমাল (একটি নেস্টেড লুপ যেখানে সন্ধানের আনুমানিক সংখ্যা 1 ছিল এমন এক সন্ধানের 9 মিলিয়ন ফাঁসি কার্যকর করে)। নিশ্চিত হয়েছি যে কিছু প্রাসঙ্গিক পরিসংখ্যান যেখানে সত্যই আমি তারিখগুলি পুনর্নির্মাণ করেছি এবং কার্য সম্পাদন সমস্যা কার্যকরভাবে সমাধান করা হয়েছে।
এই ডাটাবেসটিতে অটো আপডেট পরিসংখ্যান সক্ষম হয়েছে (ডিফল্ট অনুসারে)। আমি বুঝতে পেরেছি সেখানে অটো স্ট্যাটাস আপডেটের জন্য একটি থ্রেশহোল্ড রয়েছে যেখানে 20% + 500 সারি পরিবর্তন রয়েছে (আপডেট / সন্নিবেশ / মুছুন) on এই প্রান্তিকতা একাধিক সূচকে বৃহত্তর ডিগ্রি ছাড়িয়ে গেছে বলে মনে হয়, যেমন এটি উপস্থিত হয় (ক) অটো আপডেটে সমস্যা আছে বা (খ) অনলাইনে সন্ধান করার চেয়ে আপডেটের কৌশলটিতে আরও অনেক কিছু রয়েছে ডকুমেন্টেশন।
আমি প্রশংসা করি যে পরিসংখ্যান আপডেট করার জন্য একটি নির্ধারিত টাস্ক সেট আপ করা যেতে পারে এবং এটি সম্ভবত আমাদের গ্রহণ করা পদ্ধতির হতে পারে যদি অন্য কোনও সমাধান না পাওয়া যায় তবে এটি আমাদের বিভ্রান্ত করে ফেলেছে যে এত বড় সংখ্যক পরিবর্তন কেন ট্রিগার করবে না? কিছু পরিসংখ্যানের জন্য অটো আপডেট - কোন নির্ধারিত টাস্কটি দ্বারা কোন পরিসংখ্যান আপডেট করা দরকার তা কেন আমাদের সিদ্ধান্ত নিতে সহায়তা করতে পারে তা বোঝা।
কিছু অতিরিক্ত নোট:
1) সমস্যাটি এমন একটি ডাটাবেজে উল্লেখ করা হয়েছিল যেখানে লোড পরীক্ষার মাধ্যমে ডেটা তৈরি করা হচ্ছে এবং অল্প সময়ের মধ্যে এত বড় পরিমাণে ডেটা যুক্ত করা হচ্ছে, সুতরাং যদি অটো আপডেট পর্যায়ক্রমে ঘটে থাকে (যেমন দিনে একবার বেশিরভাগ) তবে এটি পর্যবেক্ষণের কিছু আচরণ ব্যাখ্যা করতে পারে। এছাড়াও আমাদের লোড পরীক্ষাগুলি ডেটাবেসকে ভারী চাপ দেয়, তাই আমি ভাবছি যে ভারী বোঝা থাকাকালীন এসকিউএল পরিসংখ্যান আপডেটগুলি পিছিয়ে দিচ্ছে (এবং পরবর্তীকালে কোনও কারণে স্ট্যাটাস আপডেট করা হচ্ছে না)।
২) এই সমস্যাটি ক্রমান্বয়ে INSERT, নির্বাচন করুন এবং মুছে ফেলার বিবরণ সম্বলিত একটি পরীক্ষা স্ক্রিপ্ট দিয়ে পুনরায় তৈরি করার চেষ্টা করার সময় সমস্যাটি ঘটেনি। আমি ভাবছি যে এখানে পার্থক্যটি হ'ল এই বিবৃতিগুলি প্রতিটি এসকিউএল বিবৃতিতে অনেকগুলি সারিকে প্রভাবিত করে, যদিও আমাদের লোড টেস্ট স্ক্রিপ্টটি স্বতন্ত্রভাবে সারিগুলি সন্নিবেশ করায়।
3) প্রশ্নে থাকা ডিবি 'সিম্পল' পুনরুদ্ধারের মডেলটিতে সেট করা আছে।
কিছু প্রাসঙ্গিক লিঙ্ক:
আমি এই সমস্যাটি মাইক্রোসফ্ট সংযোগের মাধ্যমে উত্থাপন করেছি:
আপডেট ২০১১-০6-৩০:
আরও তদন্তে আমি বিশ্বাস করি যে প্রান্তিক স্তরগুলি (যেমন 500 সারি + 20%) অতিক্রমের পরিসংখ্যানগুলি এমন স্ট্যাটাস যা সমস্যা ক্যোয়ারী দ্বারা ব্যবহার করা হচ্ছে না, সুতরাং কোনও কোয়েরি চালানোর সময় সম্ভবত তারা আপডেট করা হবে যে তাদের প্রয়োজন। পরিসংখ্যান যে জন্য হয় ক্যোয়ারী দ্বারা ব্যবহৃত, এই নিয়মিতভাবে আপডেট করা হচ্ছে। তারপরে বাকী সমস্যাটি হ'ল এই পরিসংখ্যানগুলি কেবল তুলনামূলকভাবে কয়েকটি সন্নিবেশের পরে ক্যোয়ারী প্ল্যান অপটিমাইজারের কাছে গুরুতরভাবে বিভ্রান্ত করছে (উদাহরণস্বরূপ উপরোক্ত 9 মিলিয়ন বা এর ফলে যেখানে অনুমান সংখ্যাটি 1 ছিল সন্ধান করা)।
আমার এই মুহুর্তে সমস্যাটি হ'ল সমস্যাটি প্রাথমিক কীটির দুর্বল পছন্দের সাথে সম্পর্কিত, কীটি একটি অনন্য শনাক্তকারী, যা NEWID () ব্যবহার করে তৈরি করা হয়েছিল, এবং এটি খুব দ্রুত একটি খণ্ডিত সূচক তৈরি করে - বিশেষত এসকিউএল-এ ডিফল্ট ফিল ফ্যাক্টর হিসাবে সার্ভারটি 100%। আমার কুণ্ডলীটি হ'ল এটি কোনওভাবে তুলনামূলকভাবে কয়েকটি সারি সন্নিবেশের পরে বিভ্রান্তিকর পরিসংখ্যানগুলিতে ফলাফল দেয় - তবে পরিসংখ্যানগুলি পুনরায় গণনার জন্য প্রান্তিকের চেয়ে কম। এটি সম্ভবত একটি অ-ইস্যু, কারণ আমি সূচিগুলি খণ্ড খণ্ড খণ্ড খণ্ড খণ্ড খণ্ড তৈরি না করেই প্রচুর পরিমাণে ডেটা তৈরি করেছি, অতএব দরিদ্র পরিসংখ্যানগুলি ফলশ্রুতিতে খুব উচ্চ সূচী বিভাজনের ফলস্বরূপ হতে পারে। আমি মনে করি দীর্ঘ সময় ধরে একটি বাস্তব সিস্টেমে পারফরম্যান্সের আরও ভাল ধারণা পেতে আমার লোড পরীক্ষায় এসকিউএল সার্ভার রক্ষণাবেক্ষণ চক্র যুক্ত করতে হবে।
আপডেট 2012-01-10:
আরেকটি বিষয় বিবেচনা করা উচিত। পুরানো এবং / অথবা বিভ্রান্তিকর পরিসংখ্যানের ঘটনার সাথে সম্পর্কিত নির্দিষ্ট ত্রুটিগুলি সমাধান করার জন্য এসকিউএল সার্ভার ২০০৫-এ দুটি ট্রেস পতাকা যুক্ত করা হয়েছিল (এবং ২০০৮ সালে এখনও উপস্থিত রয়েছে বলে মনে হয়)। প্রশ্নযুক্ত পতাকাগুলি হ'ল:
DBCC TRACEON(2389)
DBCC TRACEON(2390)
এমএসডিএন: আয়ান জোসের ওয়েবলগ: আরোহী কীগুলি এবং অটো কুইক সংশোধিত পরিসংখ্যান পরিসংখ্যানগুলি উপরে উঠার কলামগুলিতে, ফ্যাবিয়ানো আমোরিম
এই পতাকাগুলি সক্ষম করার সিদ্ধান্ত নেওয়ার সময় অবশ্যই আপনার খুব সতর্ক হওয়া উচিত কারণ এগুলির ক্ষতিকারক প্রভাব থাকতে পারে।