यहां मेरी क्वेरी है:ओरेकल में इस प्रश्न का परिणाम मेर्ज जॉइन कार्टिसियन में क्यों होता है?
select count(*)
from email_prod_junc j
inner join trckd_prod t5 on j.trckd_prod_sk = t5.trckd_prod_sk
inner join prod_brnd b on t5.prod_brnd_sk = b.prod_brnd_sk
inner join email e on j.email_sk = e.email_sk
inner join dm_geography_sales_pos_uniq u on (u.emp_sk = e.emp_sk and u.prod_brnd_sk = b.prod_brnd_sk)
व्याख्या योजना कहती है:
कार्टेशियन DM_GEOGRAPHY_SALES_POS_UNIQ और EMAIL_PROD_JUNC के बीच जुड़ें।
मुझे समझ में नहीं आता है क्योंकि प्रत्येक तालिका के लिए एक शर्त स्थिति क्यों है।
क्या मर्ज कार्टियरियन में वास्तव में प्रदर्शन समस्याओं का कारण बनती है या क्या आप इसे देखने की उम्मीद नहीं करते हैं? यदि आप जिन टेबलों में शामिल हो रहे हैं उनमें से एक पंक्तियों में शामिल होने के लिए कार्टसियन में शामिल हो सकते हैं। इसके अलावा ओरेकल संस्करण सहायक होगा क्योंकि रिलीज से रिलीज होने के लिए ऑप्टिमाइज़र बदल दिए गए हैं/बेहतर हैं। –
हां, कार्ट में शामिल होने के लिए क्वेरी में एक मिनट का समय लगा। एक बार जब मैंने आदेश दिया गया संकेत जोड़ा, तो यह <1s में लौटा। यह ओरेकल 10 जी है। Trckd_Prod और Prod_Brnd छोटी टेबल हैं, अन्य 3 बहुत बड़े हैं। –
@ मार्कशेरेटा - 10 जी ऑप्टिमाइज़र को फ्लैकी के रूप में जाना जाता है और संकेतों की आवश्यकता होती है जो ऑप्टिमाइज़र के बाद के संस्करणों की आवश्यकता नहीं होती है। 11.1 सुंदर ठोस - 11.2 बेहतर। मेरे पास 12 के साथ कोई व्यक्तिगत अनुभव नहीं है इसलिए यह नहीं कह सकता कि यह कैसा चल रहा है। –