একই এসকিউএল সার্ভার 2005 উদাহরণে আমার প্রায় দুটি অভিন্ন প্রশ্ন চলছে:
SELECT
লিনকিউ দ্বারা উত্পাদিত প্রথমটি হ'ল মূল ক্যোয়ারী (আমি জানি, আমি জানি ... আমি অ্যাপ্লিকেশন বিকাশকারী নই, কেবল ডিবিএ :)।- দ্বিতীয়টি প্রথমটির মতো একই,
OPTION (RECOMPILE)
শেষে একটি যুক্ত হয়েছে ।
অন্য কিছুই পরিবর্তন করা হয়নি।
প্রথমটি প্রতিবার তার রান 55 মিনিট সময় নেয়।
দ্বিতীয়টি 2 সেকেন্ড সময় নেয়।
উভয় ফলাফল সেট অভিন্ন।
এই ইঙ্গিতটি পারফরম্যান্সে এ জাতীয় নাটকীয় উপার্জন কেন করবে?
অনলাইনে বুকস অনলাইন এন্ট্রি RECOMPILE
খুব বিস্তারিত ব্যাখ্যা দেয় না:
এসকিউএল সার্ভার ডেটাবেস ইঞ্জিনকে কোয়েরিটি কার্যকর হওয়ার পরে উত্পন্ন পরিকল্পনাটি বাতিল করার নির্দেশ দেয়, কোয়েরি অপ্টিমাইজারকে পরের বার একই কোয়েরি কার্যকর করার পরে একটি কোয়েরি প্ল্যানটি পুনরায় কম্পাইল করতে বাধ্য করে। RECOMPILE নির্দিষ্ট না করেই, ডাটাবেস ইঞ্জিন কোয়েরি প্ল্যানগুলি ক্যাশে করে এবং সেগুলি পুনরায় ব্যবহার করে। কোয়েরি প্ল্যানগুলি সংকলন করার সময়, পুনরুদ্ধার ক্যোয়ারী ইঙ্গিতটি কোয়েরিতে যে কোনও স্থানীয় ভেরিয়েবলের বর্তমান মানগুলি ব্যবহার করে এবং, যদি কোয়েরিটি কোনও সঞ্চিত পদ্ধতির অভ্যন্তরে থাকে তবে বর্তমান মানগুলি কোনও পরামিতিগুলিতে চলে গেছে।
রিকোপাইল হ'ল একটি সঞ্চিত পদ্ধতি তৈরির জন্য একটি কার্যকর বিকল্প যা কেবলমাত্র সঞ্চিত পদ্ধতির পরিবর্তে কেবলমাত্র সঞ্চিত পদ্ধতির ভিতরে কোয়েরিগুলির একটি উপসেট পুনরায় সংযুক্ত করা উচিত RE আরও তথ্যের জন্য, সঞ্চিত পদ্ধতি পুনরায় সংবিধান দেখুন। আপনি যখন পরিকল্পনা গাইড তৈরি করেন তখনও সুপারিশটি কার্যকর। আরও তথ্যের জন্য, প্ল্যান গাইড ব্যবহার করে নিযুক্ত অ্যাপ্লিকেশনগুলিতে প্রশ্নগুলির অনুকূলকরণ দেখুন।
যেহেতু আমার ক্যোয়ারিতে প্রচুর স্থানীয় ভেরিয়েবল রয়েছে, তাই আমার অনুমান যে এসকিউএল সার্ভার যখন আমি OPTION (RECOMPILE)
ক্যোয়ারী ইঙ্গিতটি ব্যবহার করি তখন এটি (গুরুতরভাবে) অনুকূল করতে সক্ষম হয় ।
আমি যেখানেই দেখছি লোকেরা OPTION (RECOMPILE)
এড়িয়ে চলার কথা বলছে । এর ব্যাখ্যাটি সাধারণত হ'ল এই ইঙ্গিতটি এসকিউএল সার্ভার ব্যবহার করে এই নিষ্কাশন পরিকল্পনাটি পুনরায় ব্যবহার করতে সক্ষম হয় না এবং তাই প্রতিবার এটি পুনরায় সংশোধন করতে সময় নষ্ট করতে হয়।
(তবে) বিশাল পারফরম্যান্সের সুবিধার জন্য, আমি ভাবতে আগ্রহী যে এই বারে এই ক্যোয়ারী ইঙ্গিতটি ব্যবহার করা ভাল জিনিস হবে।
আমি এটি ব্যবহার করা উচিত? যদি তা না হয় তবে কী কোনও উপায় আছে যে আমি এসকিউএল সার্ভারকে এই ইঙ্গিতটি ছাড়াই এবং অ্যাপ্লিকেশনটি পরিবর্তন না করেই আরও কার্যকর সম্পাদন পরিকল্পনা ব্যবহার করতে বাধ্য করতে পারি?