से संबंधित गणना यह तकनीकी "कैसे-कैसे" या "सर्वोत्तम दृष्टिकोण" प्रश्न है।सी # LINQ और बड़े डेटासेट
हमारे पास डेटाबेस से रिकॉर्ड्स पुनर्प्राप्त करने की एक मौजूदा आवश्यकता है, उन्हें 'इन-मेमोरी' सूची में रखें और फिर डेटा पर गणनाओं की एक श्रृंखला, यानि अधिकतम मूल्य, औसत और कुछ और विशिष्ट कस्टम आंकड़े भी करें ।
डेटा को 'इन-मेमोरी' सूची में प्राप्त करना कोई समस्या नहीं है क्योंकि हम एनएचबीर्नेट को हमारे ओआरएम के रूप में उपयोग करते हैं और यह डेटाबेस से डेटा पुनर्प्राप्त करने का एक उत्कृष्ट काम करता है। सलाह जो मैं चाहता हूं वह है कि हम डेटा की परिणामी सूची पर गणना कैसे कर सकते हैं।
आदर्श रूप से मैं प्रत्येक आंकड़े, अधिकतम वैल्यू(), औसत वैल्यूयूंड 100(), MoreComplicatedStatistic() इत्यादि के लिए एक विधि बनाना चाहता हूं। बेशक प्रत्येक विधि के लिए आवश्यक चर पारित करना और परिणाम को वापस करना। यह दृष्टिकोण इकाई को एक हवा का परीक्षण भी करेगा और हमें उत्कृष्ट कवरेज प्रदान करेगा।
यदि हम प्रत्येक गणना के लिए LINQ क्वेरी करते हैं तो प्रदर्शन प्रदर्शन होगा या प्रत्येक स्टैटिस्टिक विधि को जितनी संभव हो सके उतनी LINQ क्वेरी में समेकित किया जाना चाहिए। उदाहरण के लिए, यह औसतValueBelow100 नामक विधि में डेटा की सूची को पास करने के लिए अधिक समझ नहीं लेता है और फिर डेटा की पूरी सूची को किसी अन्य विधि में पास कर देता है औसत ValueBelow50 जब वे प्रभावी रूप से एक LINQ क्वेरी के साथ निष्पादित किए जा सकते हैं।
हम प्रदर्शन को त्याग किए बिना उच्च स्तर की ग्रैन्युलरिटी और अलगाव कैसे प्राप्त कर सकते हैं?
कोई सलाह ... क्या सवाल पर्याप्त स्पष्ट है?
सबसे अच्छा तरीका डेटाबेस के खिलाफ प्रश्नों को निष्पादित करना होगा जहां आपको वास्तव में प्रदर्शन –
प्रदर्शन सुधारने के लिए इंडेक्स का लाभ होगा? इसलिए 'इन-मेमोरी' प्रक्रिया की बजाय हम डेटाबेस से पूछताछ करना बेहतर होगा। कुछ गणना काफी जटिल हैं इसलिए मुझे पूरी तरह से यकीन नहीं है कि यह सबसे अच्छा तरीका होगा। – Rowen
अधिकांशतः डेटाबेस तेज़ी से –