STRAIGHT_JOIN
तालिकाओं के सम्मिलित क्रम को बाध्य करता है, इसलिए table1
बाहरी लूप में स्कैन किया जाता है और table2
इनर लूप में।
ऑप्टिमाइज़र सही नहीं है (हालाँकि अभी भी काफी सभ्य है), और सबसे संभावित कारण पुराने आँकड़े हैं।
नहीं, केवल तभी जब अनुकूलक गलत हो। ऐसा हो सकता है यदि आपका डेटा वितरण गंभीर रूप से विषम है या ठीक से गणना नहीं की जा सकती है (जैसे, स्थानिक या पूर्ण पाठ अनुक्रमणिका के लिए)।
आपको आंकड़े एकत्र करने चाहिए, दोनों तरह से योजनाएं बनानी चाहिए और समझना चाहिए कि इन योजनाओं का क्या मतलब है।
अगर आप इसे देखते हैं:
-
स्वचालित रूप से जेनरेट की गई योजना इष्टतम नहीं है और इसे मानक तरीकों से सुधारा नहीं जा सकता,
-
STRAIGHT_JOIN
संस्करण बेहतर है, आप समझते हैं कि यह हमेशा रहेगा और समझेगा क्यों यह हमेशा रहेगा
, फिर STRAIGHT_JOIN
use का उपयोग करें ।