मेरे पास एक ऐसे व्यवसाय के लिए असाइनमेंट है जो मूल रूप से डेटाबेस (माइक्रोसॉफ्ट एसक्यूएल सर्वर 2008) से डेटा निकालने के बारे में है। प्रक्रिया में, उपयोगकर्ता चुनने में सक्षम होंगे कि कौन से कॉलम चुनने हैं, चुनें कि किस दृश्य से चयन करना है, और WHERE क्लॉज का निर्माण करना है। उपयोगकर्ता द्वारा चुने गए उपयोगकर्ता के आधार पर, SQL क्वेरी तदनुसार बनाई गई है। एक आवश्यकता यह है कि उपयोगकर्ता किसी भी दृश्य से किसी भी कॉलम का चयन कर सकते हैं और WHERE क्लॉज में किसी भी कॉलम द्वारा फ़िल्टर कर सकते हैं। कंपनी डेटा वेयरहाउस/ओलाप का उपयोग करने के लिए समाधान नहीं चाहता है, और किसी तीसरे पक्ष के सॉफ्टवेयर को सीमित करना चाहता है। तो मूल रूप से वे सिर्फ एक .NET विंडोज फॉर्म एप्लिकेशन चाहते हैं जो एक जीयूआई के आधार पर गतिशील रूप से SQL क्वेरी बनाता है और डेटाबेस से कनेक्ट होता है।डायनामिक क्वेरी ऑप्टिमाइज़ेशन
मेरी चिंता यहां प्रश्नों को अनुकूलित करने का तरीका है। मैं अभी तक एसक्यूएल प्रश्नों को अनुकूलित करने के लिए अच्छा नहीं हूं, लेकिन मेरा पहला विचार था: क्या होगा यदि उपयोगकर्ता उस कॉलम द्वारा फ़िल्टर करना चुनता है जिसमें कोई अनुक्रमणिका नहीं है (WHERE क्लॉज में)? उपयोगकर्ता को इतना लचीलापन देकर, वे संभावित रूप से उन प्रश्नों का निर्माण कर सकते हैं जो इतने अप्रभावी हैं कि उन्हें निष्पादित करने में लंबा समय लगेगा।
मुझे एहसास है कि प्रदर्शन बहुत सारे डेटा के साथ अच्छा नहीं हो सकता है अगर वे ऐसे कॉलम पर फ़िल्टर करते हैं जिनमें कोई सूचकांक नहीं है, लेकिन क्या मैं इसे सुधारने के लिए कुछ भी कर सकता हूं? निश्चित रूप से मैं सिर्फ सभी कॉलम में इंडेक्स नहीं जोड़ सकता।
मैं जरूरी नहीं कि केवल क्वेरी ऑप्टिमाइज़ेशन की तलाश कर रहा हूं, लेकिन मैं यह भी सोच रहा हूं कि क्या कोई सर्वर बदलाव है जो मैं कर सकता हूं, जैसे कैशिंग? असल में मैं सभी कान हूं और किसी भी सलाह की तलाश कर रहा हूं जो प्रदर्शन में सुधार करने में मेरी मदद कर सकता है।
कोई सुझाव?
अग्रिम धन्यवाद!
यह उन परिदृश्यों में से एक है जिनके लिए कॉलम स्टोर इंडेक्स मदद करना चाहिए (अगले संस्करण तक उपलब्ध नहीं है!)। सुनिश्चित नहीं है कि डीडब्ल्यू का उपयोग न करके आपका क्या मतलब है। क्या यह एक ओएलटीपी डेटाबेस से पूछताछ कर रहा है जो समवर्ती डेटा संशोधनों के अधीन है इसलिए इंडेक्स जोड़ने की अनिच्छा? –
हां, डेटाबेस अक्सर एक ओएलटीपी डेटाबेस नहीं होगा जो कई अन्य चीजों के लिए उपयोग किया जाता है। इसलिए, कई सूचकांक जोड़ना आवेषण/अपडेट को धीमा कर देगा, मुझे विश्वास है। – Andy0708
संदेह उस विनिर्देश के आधार पर आप कर सकते हैं (स्पष्ट हार्डवेयर उन्नयन के अलावा)। प्रदर्शन शायद चूसना होगा। उन्होंने इसके लिए ओलाप/डीडब्ल्यू क्यों छूट दी है? –