मैं मूल रूप से एसक्यूएल सर्वर में कुछ भी होता है कि:
संक्षेप, गिनती का एक बहुत, डेटा की औसत आदि करता है और केवल एक ही मान देता है। मध्यम स्तर पर डेटा की बड़ी मात्रा को स्थानांतरित करने में वास्तव में कोई बिंदु नहीं है, बस एक कॉलम
बहुत सारी पंक्ति/सेट-आधारित मैनिपुलेशन करता है; यदि आपको प्रतिलिपि बनाने, सम्मिलित करने, बहुत सारे डेटा अपडेट करने की आवश्यकता है, फिर भी, उस डेटा को मध्य स्तर पर खींचने में वास्तव में कोई बिंदु नहीं है और फिर उसे सर्वर पर वापस भेजना - इसे सीधे चलने से सर्वर पर करें। इसके अलावा: T-SQL काफी तेजी आपके बीच स्तरीय में कुछ भी की तुलना में (लगभग डेटा फेरबदल की तरह) सेट आधारित संचालन से निपटने के लिए है हो सकता है
संक्षेप में: ग्राहक के लिए डेटा की बड़ी मात्रा में भेजने से बचने की कोशिश/मध्यम-स्तरीय/व्यापार परत जब तक कि आपको पूरी तरह से नहीं करना है (उदाहरण के लिए क्योंकि आप किसी डेटाबेस में संग्रहीत फ़ाइल को डाउनलोड करना चाहते हैं, या यदि आप वास्तव में की आवश्यकता है ताकि आपके 200 ऐप में ऑब्जेक्ट्स में भौतिक रूप से प्रदर्शित होने के लिए उन पंक्तियों को कहीं भी प्रदर्शित किया जा सके या संचालित किया जा सके चालू)
एक विशेषता जिसे अक्सर अनदेखा किया जाता है गणना की गई कॉलम आपकी डेटाबेस तालिका में ठीक है - वे उदाहरण में वास्तव में अच्छे हैं अपने ऑर्डर कुल प्लस टैक्स और शिपिंग को ग्रैंड कुल में जोड़ना, या वे प्रदर्शन के नाम पर अपना पहला और अंतिम नाम एक साथ रखना बहुत अच्छा है। उन चीजों को वास्तव में केवल व्यावसायिक तर्क परत में नहीं संभाला जाना चाहिए - यदि आप सीधे डेटाबेस में करते हैं, तो "डेटाबेस" का निरीक्षण करते समय उन "गणना" मान भी आपके लिए उपलब्ध होते हैं और SQL सर्वर में डेटा को देखते हैं Mgmt स्टूडियो ...
मैं इसे मध्यम स्तरीय/व्यापार तर्क परत
अगर यह व्यापक तर्क चेकिंग, स्ट्रिंग पार्स, पैटर्न मिलान और इसके आगे के लिए आवश्यक में डाल दिया जाएगा; T-SQL उन चीजों
अगर यह एक वेब सेवा को फोन कि
तरह के खिलाफ अपने डेटा, या कुछ मान्य करने के लिए कुछ डेटा प्राप्त करने के लिए अगर यह एक व्यापार तर्क आपरेशन के अधिक आवश्यक जैसी चीजों की आवश्यकता पर बेकार है (बजाय सख्त "परमाणु" डेटाबेस संचालन)
लेकिन उन सिर्फ "किसी न किसी" दिशा निर्देश हैं - यह हमेशा प्रत्येक मामले के लिए एक डिजाइन निर्णय है, और मैं कड़े नियमों में विश्वास नहीं करते; आपका माइलेज अलग-अलग हो सकता है, मामले से मामले में - तो एक ऐसा दृष्टिकोण चुनें जो किसी दिए गए कार्य के लिए सबसे अच्छा काम करता है।
स्रोत
2012-01-24 21:42:37
मैं हमेशा डेटाबेस में गणना करता हूं, ** यदि ** आपकी गणना को ** ** डेटा के बहुत सारे डेटा ** लौटने की आवश्यकता होगी, बस उदाहरण के लिए एक 'एसयूएम' की गणना की। क्यों उस डेटा को चारों ओर भेजना परेशान है ?? डेटाबेस कुछ मूल्यों को पूरा करने के लिए अच्छी तरह से सुसज्जित है, और केवल एक परिणाम भेजें - ** अधिक ** अधिक कुशल! तो जब भी आपको बहुत कुछ करने की ज़रूरत होती है - लेकिन वापस लौटें - इसे सर्वर पर करें। –
मैं @marc_s SQL सर्वर से सहमत हूं, डेटा को तेज़ी से और अधिक कुशलतापूर्वक संसाधित करने के लिए डिज़ाइन किया गया है। –