Oracle सहित आधुनिक RDBM, अधिकांश जॉइन और सब क्वेरीज़ को उसी निष्पादन योजना में अनुकूलित करते हैं।
इसलिए, मैं आगे बढ़ूंगा और आपकी क्वेरी को आपके लिए सबसे सरल तरीके से लिखूंगा और यह सुनिश्चित करने पर ध्यान केंद्रित करूंगा कि आपने अपनी अनुक्रमणिका को पूरी तरह से अनुकूलित कर लिया है।
यदि आप अपनी अंतिम क्वेरी और अपना डेटाबेस स्कीमा प्रदान करते हैं, तो हम संभावित लॉकिंग मुद्दों के बारे में जानकारी सहित विस्तृत सुझाव देने में सक्षम हो सकते हैं।
संपादित करें
यहां कुछ सामान्य युक्तियां दी गई हैं जो आपकी क्वेरी पर लागू होती हैं:
- जुड़ने के लिए, सुनिश्चित करें कि आप जिस कॉलम में शामिल हो रहे हैं, उस पर आपके पास एक इंडेक्स है। दोनों तालिकाओं में सम्मिलित स्तंभों के लिए एक अनुक्रमणिका लागू करना सुनिश्चित करें। आप सोच सकते हैं कि आपको केवल एक दिशा में अनुक्रमणिका की आवश्यकता है, लेकिन आपको दोनों को अनुक्रमित करना चाहिए, क्योंकि कभी-कभी डेटाबेस यह निर्धारित करता है कि विपरीत दिशा में शामिल होना बेहतर है।
- WHERE क्लॉज के लिए, सुनिश्चित करें कि आपके पास WHERE में उल्लिखित कॉलम पर इंडेक्स हैं।
- कई पंक्तियों को सम्मिलित करने के लिए, यदि आप उन सभी को एक ही प्रश्न में सम्मिलित कर सकते हैं तो यह सबसे अच्छा है।
- एक संकुल अनुक्रमणिका वाली तालिका में सम्मिलित करने के लिए, यदि आप संकुल अनुक्रमणिका के लिए वृद्धिशील मानों के साथ सम्मिलित करते हैं तो यह सबसे अच्छा है ताकि नई पंक्तियों को डेटा के अंत में जोड़ा जा सके। यह सूचकांक के पुनर्निर्माण से बचता है और अक्सर मौजूदा रिकॉर्ड पर ताले से बचा जाता है, जो मौजूदा पंक्तियों के खिलाफ चयन प्रश्नों को धीमा कर देगा। मूल रूप से, इंसर्ट सिस्टम के अन्य उपयोगकर्ताओं के लिए कम दर्दनाक हो जाते हैं।