यह बहुत सारे कारकों पर निर्भर करता है - लेकिन सबसे महत्वपूर्ण:
- गणना की जटिलता (ऐप-सर्वर पर जटिल क्रंचिंग करना पसंद करते हैं, क्योंकि यह बाहर स्केल करता है; एक डीबी सर्वर के बजाय, जो ऊपर . को मापता है )
- डेटा की मात्रा (यदि आपको बहुत सारा डेटा एक्सेस/एग्रीगेट करने की आवश्यकता है, तो इसे डीबी सर्वर पर करने से बैंडविड्थ की बचत होगी, और डिस्क आईओ अगर इंडेक्स के अंदर एग्रीगेट किया जा सकता है)
- सुविधा (एसक्यूएल जटिल काम के लिए सबसे अच्छी भाषा नहीं है - विशेष रूप से प्रक्रियात्मक काम के लिए बहुत अच्छी नहीं है, लेकिन सेट-आधारित काम के लिए बहुत अच्छी है; खराब त्रुटि-प्रबंधन, हालांकि)
हमेशा की तरह, अगर आप करते हैं डेटा को ऐप-सर्वर पर वापस लाएं, कॉलम और पंक्तियों को छोटा करना आपके लाभ के लिए होगा। यह सुनिश्चित करना कि क्वेरी को ट्यून किया गया है और उचित रूप से अनुक्रमित किया गया है, किसी भी परिदृश्य में मदद करेगा।
अपना ध्यान दें:
<ब्लॉकक्वॉट>और फिर रिकॉर्ड के माध्यम से लूप करें
लूपिंग रिकॉर्ड के माध्यम से एसक्यूएल में लगभग हमेशा गलत काम होता है - एक सेट-आधारित ऑपरेशन लिखना पसंद किया जाता है।
एक सामान्य नियम के रूप में , मैं डेटाबेस के काम को कम से कम "इस डेटा को स्टोर करें, यह डेटा प्राप्त करें" रखना पसंद करता हूं - हालांकि, हमेशा ऐसे परिदृश्यों के उदाहरण होते हैं जहां सर्वर पर एक सुरुचिपूर्ण क्वेरी बहुत सारे बैंडविड्थ को बचा सकती है।
यह भी विचार करें:यदि यह कम्प्यूटेशनल रूप से महंगा है, तो क्या इसे कहीं कैश किया जा सकता है?
अगर आप सटीक चाहते हैं "कौनसा अच्छा है"; इसे दोनों तरीकों से कोड करें और इसकी तुलना करें (यह ध्यान में रखते हुए कि या तो पहला ड्राफ्ट 100% ट्यून नहीं किया गया है)। लेकिन इसके सामान्य उपयोग में कारक:यदि, वास्तव में, इसे एक बार में 5 बार (अलग से) कहा जा रहा है, तो उसका अनुकरण करें:केवल एक "इनमें से 1 बनाम उनमें से 1" की तुलना न करें।