आपको गलत धारणा है कि अनुकूलक SQL कथन को फिर से लिखता है। बात वह नहीं है। क्वेरी को फिर से लिखना क्वेरी रीराइटर . का काम है , जो उदाहरण के लिए विचारों को उनकी परिभाषा से बदल देता है। परिणाम की गणना करने के लिए ऑप्टिमाइज़र निष्पादन चरणों के अनुक्रम के साथ आता है। यह एक योजना तैयार करता है , SQL कथन नहीं।
अनुकूलक दो विकल्पों की योजना बनाता है:या तो मिली प्रत्येक पंक्ति के लिए उपयोजना 1 निष्पादित करें, या उपयोजना 2 को एक बार निष्पादित करें (ध्यान दें कि यह a
से स्वतंत्र है ), परिणाम से एक हैश तालिका बनाएं और जांच करें कि प्रत्येक पंक्ति के लिए हैश a
. में पाया गया है ।
निष्पादन के समय, PostgreSQL बाद की रणनीति का उपयोग करने का निर्णय लेता है, यही कारण है कि सबप्लान 1 को कभी भी निष्पादित नहीं किया जाता है।