ধীর এসকিউএল কোয়েরি পড়ার পরে , কীভাবে কীভাবে অপ্টিমাইজ করা যায় তা নিশ্চিত নন , এটি আমার প্রশ্নের সাধারণ পারফরম্যান্স সম্পর্কে চিন্তাভাবনা করেছিল। অবশ্যই, আমাদের প্রশ্নগুলি যে আরও সামান্য দ্রুততর করার জন্য আমাদের প্রথম টেবিলের ফলাফলগুলি (যখন অন্যান্য টেবিলগুলি যুক্ত হবে) যোগদানের আগে যতটা সম্ভব ছোট হওয়া প্রয়োজন (এই প্রশ্নের অভ্যন্তরীণ সাথে যোগ দেয়) in
উদাহরণস্বরূপ, এটি করা উচিত:
SELECT *
FROM ( SELECT * FROM table1 WHERE col = @val ) t
INNER JOIN table2 ON col = col2
এর থেকে আরও ভাল / দ্রুত থাকুন:
SELECT *
FROM table1
INNER JOIN table2 ON col = col2
WHERE table1.col = @val
আমার তত্ত্বটি নিম্নরূপে রয়েছে (এটি সঠিক বাস্তবায়ন হতে পারে না, আমি একটি এসকিউএল সার্ভার ২০০৮ ইন্টার্নাল বইটি পড়েছি (এমএসএফটি প্রেস) থেকে স্মরণ করার চেষ্টা করছি):
- ক্যোয়ারী প্রসেসর প্রথমে বাম টেবিল পায় (টেবিল 1)
- দ্বিতীয় সারণীতে (টেবিল 2) যোগদান করে এবং প্রয়োজনীয় সারিগুলি ফিল্টার করার আগে একটি কার্টেসিয়ান পণ্য তৈরি করে (প্রযোজ্য ক্ষেত্রে)
- তারপরে SEELCT বিবৃতিটি সর্বশেষে কোথায়, অর্ডার দ্বারা, গ্রুপ দ্বারা গ্রাহক করা হচ্ছে forms
সুতরাং উপরের # 1 বিবৃতিতে, টেবিলটি ছোট হলে, কার্তেসিয়ান পণ্য গঠনের সময় এসকিউএল ইঞ্জিনের খুব কম কাজ হবে। তারপরে আপনি যখন বিবৃতিতে পৌঁছবেন তখন মেমরিতে ফিল্টার করার জন্য আপনার একটি কম ফলাফল সেট রয়েছে।
আমি এটি অবাস্তব চিহ্ন থেকে দূরে হতে পারে। যেমনটি আমি বলেছিলাম, এটি একটি তত্ত্ব।
আপনার চিন্তাগুলো?
দ্রষ্টব্য : আমি কেবল এই প্রশ্নটি নিয়েই ভেবেছি এবং আমার নিজের কোনও পরীক্ষা চালানোর সুযোগ হয়নি।
দ্রষ্টব্য 2 : এসকিউএল সার্ভার হিসাবে ট্যাগ করা হিসাবে আমি মাইএসকিএল ইত্যাদির বাস্তবায়ন সম্পর্কে কিছুই জানি না । দয়া করে যেকোনোভাবেই উত্তর / মন্তব্য করতে দ্বিধা বোধ করবেন