कुछ समय पहले, ब्रेंट ओजेर ने SQL सर्वर और पोस्टग्रेक्यूएल के बीच कुछ अंतरों का विवरण देते हुए एक पोस्ट प्रकाशित की:
SQL सर्वर और PostgreSQL के बीच दो महत्वपूर्ण अंतर
पहला बिंदु ("CTEs ऑप्टिमाइज़ेशन फैंस हैं") ने मेरी आंख को पकड़ लिया, क्योंकि यह स्पष्ट है कि प्रदान किए गए उदाहरण में, SQL सर्वर CTE और मुख्य क्वेरी को एक साथ जोड़ता है और इसे एकल क्वेरी के रूप में अनुकूलित करता है (विपरीत व्यवहार के विपरीत) PostgreSQL)।
हालाँकि, यह व्यवहार उन उदाहरणों के विपरीत लगता है जो मैंने अन्य ब्लॉग्स और प्रशिक्षण वर्गों में देखे हैं, जहाँ SQL सर्वर CTE को ऑप्टिमाइज़ेशन फेंस के रूप में मानता है, जो इंडेक्स के बेहतर उपयोग, बेहतर प्रदर्शन आदि के लिए अनुमति देता है। उदाहरण के लिए:
स्टार का चयन करने का एक बेहतर तरीका
तो, ऐसा लगता है कि SQL सर्वर CTE को ऑप्टिमाइज़ेशन बाड़ SOMETIMES के रूप में "सम्मान" देता है। क्या ऐसे कोई अच्छे संसाधन उपलब्ध हैं जो ज्ञात मामलों की विशिष्ट सूची को दस्तावेज करते हैं जहां SQL सर्वर एक अनुकूलन बाड़ (या विपरीत व्यवहार) के रूप में सीटीई का सम्मान करेगा?