একটি মাঝারি জটিল জিজ্ঞাসার জন্য আমি অনুকূলিত করার চেষ্টা করছি, আমি লক্ষ্য করেছি যে TOP n
ধারাটি অপসারণের ফলে প্রয়োগের পরিকল্পনা পরিবর্তন হয়। আমি অনুমান করতাম যে যখন কোনও প্রশ্নের মধ্যে TOP n
ডেটাবেস ইঞ্জিনটি ক্লোজটি উপেক্ষা করে ক্যোয়ারি চালাবে TOP
, এবং তারপরে শেষে কেবল সেই ফলাফলটি সঙ্কুচিত করবে যা অনুরোধ করা হয়েছিল এমন সারিগুলির n সংখ্যাতে সেট করে । গ্রাফিকাল এক্সিকিউশন প্ল্যানটি মনে হয় যে এটি কেস - TOP
এটি "শেষ" পদক্ষেপ। তবে দেখা যাচ্ছে সেখানে আরও কিছু চলছে।
আমার প্রশ্ন হ'ল কীভাবে (এবং কেন) কোনও শীর্ষস্থানীয় ক্লজ কোনও প্রশ্নের কার্যকর করার পরিকল্পনাকে প্রভাবিত করে?
আমার ক্ষেত্রে যা চলছে তার একটি সরলীকৃত সংস্করণ এখানে:
কোয়েরিটি দুটি এবং দুটি সারণী থেকে সারি মিলছে A
TOP
ধারাটি ছাড়াই , অপ্টিমাইজারটি অনুমান করে যে টেবিল এ থেকে 19k সারি থাকবে এবং টেবিল বি থেকে 46k সারি থাকবে, ফিরে আসা সারিগুলির প্রকৃত সংখ্যা এ এর জন্য 16k এবং বি এর জন্য 13 ক হয়, একটি হ্যাশ ম্যাচ এই দুটি ফলাফল সেটগুলিতে যোগ দিতে ব্যবহৃত হয় মোট 69 টি সারি (তারপরে একটি সাজানো প্রয়োগ করা হয়)। এই কোয়েরিটি খুব দ্রুত ঘটে।
আমি যখন TOP 1001
অপ্টিমাইজার যুক্ত করি তখন হ্যাশ ম্যাচ ব্যবহার করে না; পরিবর্তে এটি প্রথম টেবিল এ থেকে ফলাফলগুলি সাজান (একই প্রাক্কলন / প্রকৃত 19 কে / 16 কে) এবং টেবিল বি এর বিরুদ্ধে নেস্টেড লুপ করে টেবিল বি এর জন্য সারিগুলির আনুমানিক সংখ্যা এখন 1, এবং আশ্চর্যের বিষয়টি হ'ল TOP n
সরাসরি প্রভাবিত করে বি এর বিরুদ্ধে আনুমানিক মৃত্যুদন্ডের সংখ্যা (সূচী সন্ধান) - এটি সর্বদা 2n + 1 , বা আমার ক্ষেত্রে 2003 হিসাবে উপস্থিত বলে মনে হয় I এই পরিবর্তনটি যদি পরিবর্তন হয় তবে সেই অনুযায়ী পরিবর্তন হয় TOP n
। অবশ্যই, যেহেতু এটি নেস্টেড হওয়ায় মৃত্যুদন্ড কার্যকর হওয়ার আসল সংখ্যাটি 16 কে (টেবিল এ থেকে সারি সংখ্যা) এবং এটি কোয়েরিটিকে ধীর করে দেয়।
আসল দৃশ্যটি কিছুটা জটিল তবে এটি প্রাথমিক ধারণা / আচরণকে ধারণ করে। উভয় সারণী সূচী সিক্স ব্যবহার করে অনুসন্ধান করা হয়। এটি এসকিউএল সার্ভার 2008 আর 2 এন্টারপ্রাইজ সংস্করণ।
FAST num_rows
ক্যোয়ারির ইঙ্গিত
ORDER BY
ধারা রয়েছে।TOP
পরিকল্পনার যেখানে এই সাজানোর ঘটনা ঘটে সেখানে পরিবর্তনগুলি যুক্ত করা , তবে আমি সূচীর ফাঁসি সংখ্যা টেবিল বিয়ের বিপরীতে কীভাবে প্রভাবিত করে সে সম্পর্কে আমি আরও উদ্বিগ্ন ... (অবশ্যই দু'জনেই সম্পর্কিত হতে পারে - আমি জানি না)