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