हमारे पास एक वेब एप्लिकेशन है जिसमें उपयोगकर्ता दर्ज किए गए पैरामीटर के आधार पर विज्ञापन-प्रसार क्वेरी करते हैं। मैं यह भी उल्लेख कर सकता हूं कि प्रतिक्रिया समय उपयोगकर्ताओं के लिए बहुत महत्वपूर्ण है।क्या आप इस सरल एसक्यूएल को फिर से काम के लिए भेज देंगे?
वेब पेज गतिशील रूप से दर्ज पैरामीटर के आधार पर निष्पादित करने के लिए SQL का निर्माण करता है। उदाहरण के लिए, उपयोगकर्ता द्वारा दर्ज करता है, तो "1" के लिए "बिजनेस यूनिट" हम इस तरह एक एसक्यूएल का निर्माण:
SELECT * FROM FACT WHERE
BUSINESS_UNIT = '1'
--AND other criteria based on the input params
मैंने पाया कि जहां उपयोगकर्ता किसी BUSINESS_UNIT निर्दिष्ट नहीं करता निम्न क्वेरी
SELECT * FROM FACT WHERE
BUSINESS_UNIT LIKE '%'
--AND other criteria based on the input params
निर्माण किया है
आईएमएचओ, यह अनावश्यक रूप से (यदि सकल नहीं है) अक्षम है और संशोधन के लिए कोड खराब भेजने की गारंटी देता है, लेकिन चूंकि मेरे पास दूसरों की तुलना में पुन: काम करने के लिए कोड भेजने की बहुत अधिक दर है, तो मेरा मानना है कि मैं " बहुत चुनिंदा पसंद वाला।"
यदि यह एक अनुचित प्रश्न है क्योंकि यह प्रत्यक्ष कोडिंग क्यू नहीं है, तो मुझे बताएं और मैं इसे तुरंत हटा दूंगा। मैं बहुत उलझन में हूं कि इस तरह के व्यक्तिपरक प्रश्नों की अनुमति है या नहीं! मैं आपके जवाब देख रहा हूँ।
Ty
अद्यतन:
मैं एक Oracle डेटाबेस का उपयोग कर रहा हूँ।
मेरी धारणा यह है कि ओरेकल इस स्थिति को हटाकर "पसंद"% अनुकूलित नहीं करता है और इसे छोड़कर कम कुशल होता है। क्या कोई पुष्टि कर सकता है?
आप और कौन पता बहुत पसंद था? माइकल एंजेलो। – Ken
जैसा कि आप Womp के उत्तर से देख सकते हैं, इस स्थिति में आपको कोड वापस भेजने की आवश्यकता नहीं है, क्योंकि अधिकांश SQL क्वेरी ऑप्टिमाइज़र इस उदाहरण को कुशलतापूर्वक संभाल लेंगे। हालांकि, मैं उत्सुक हूं कि डेवलपर * जानता था कि यह * इस तरह से अनुकूलित किया जाएगा। –