2010-10-07 24 views
6

मैं डेल्फी 7 में क्लाइंट-सर्वर Win32 एप्लिकेशन लिख रहा हूं और एक सेक्शन में मुझे aprox लाने की आवश्यकता है। ओरेकल डेटाबेस से डेटा के साथ 100k (कम या अधिक) पंक्तियां। सब कुछ ठीक है, लेकिन खेतों में से एक की गणना की जानी चाहिए (एक बड़ी संख्या के साथ एक सरल विभाजन)।जो सबसे तेज़ Win32 या SQL क्वेरी है?

मेरा प्रश्न है, एसक्यूएल क्वेरी (शायद एक स्टोर प्रक्रिया) में विभाजन करने के लिए, या इस क्षेत्र के लिए कोड में मूल्य की गणना करने के लिए, कम संसाधनों का उपभोग करने और इष्टतम कैसे है? मैं गणना क्षेत्रों के साथ एक टीडीसेटसेट का उपयोग नहीं करना चाहता।

ओरेकल सिस्टम (v 9.2) अन्य अनुप्रयोगों द्वारा भी उपयोग किया जाता है, केवल इस एप्लिकेशन के लिए समर्पित नहीं है।

अग्रिम धन्यवाद।

+0

आप उस डेटा के साथ क्या करने जा रहे हैं? क्या आप उन्हें वापस डीबी में भेजते हैं या एक बार ग्राहक पर उन्हें वहां छेड़छाड़ की जाती है? उत्तर के रूप में, उस डेटा को स्थानांतरित करने के लिए उस समय का प्रस्ताव उपयोग किया जाएगा। वास्तविक बचत यह है कि यदि आप कई पंक्तियों को स्थानांतरित करने से बच सकते हैं। –

उत्तर

8

एसक्यूएल इंजन इस प्रकार के कार्य के लिए डिज़ाइन किए गए हैं, इसलिए उत्तर make the operation in the oracle system है।

हमेशा एसक्यूएल डेटा हेरफेर कार्यों डेटाबेस सर्वर है, जो कि के लिए बनाया गया है में है।

+1

डेल्फी भी उस प्रकार के स्केलर ऑपरेशन के लिए डिज़ाइन किया गया है, इसलिए यह वही हो सकता है। यह सवाल से स्पष्ट नहीं है कि क्या विभाजन आवेदन के अलावा किसी अन्य संदर्भ में कोई समझ में आता है, इसलिए मैं किसी भी दृष्टिकोण पर नहीं फंसूंगा। अगर मैं और जानता था तो शायद मैं कर सकता हूं। –

+0

आईएमएचओ ऑपरेशंस जो लौटे हुए टुपल्स की संख्या को कम नहीं करते हैं, डेल्फी की तुलना में डीबी में धीमे होते हैं। –

5

कैसे कम संसाधनों लेने वाली और इष्टतम, SQL क्वेरी में विभाजन (शायद एक दुकान प्रक्रिया) बनाने के लिए, या के लिए इस क्षेत्र (सर्वर साइड पर कोड में मूल्य की गणना करने के लिए है)?

कोई फर्क नहीं पड़ता। उस समय का थोक 100,000 पंक्तियों की गणना और संचार करने पर खर्च किया जा रहा है।

7

ऐसे स्केलर ऑपरेशन के साथ, प्रदर्शन अंतर छोटा होगा। जो भी अर्थपूर्ण रूप से अधिक उचित, या अधिक सुविधाजनक है।

4

यदि प्रदर्शन समान है, तो मैं इसे उस स्थान पर करूँगा जहां यह अधिक रखरखाव/कॉन्फ़िगरेशन अनुकूल होगा। यदि मेटाडेटा परिवर्तनों के लिए डेटाबेस को एक समर्पित रखरखाव विंडो (शनिवार को मध्यरात्रि) की आवश्यकता होती है, तो मैं संग्रहित प्रक्रिया पर क्लाइंट- या मध्यम-स्तरीय समाधान चुनूंगा।

+1

बहुत अच्छा मुद्दा। जबकि मैं दूसरों से सहमत हूं कि यह सर्वर पर ऐसा करने के लिए शायद अधिक कुशल होगा, यह ऐसा करने के लिए और अधिक व्यावहारिक हो सकता है जहां आप इसे तुरंत अपने हाथों से प्राप्त कर सकते हैं और परिवर्तन कर सकते हैं। कुछ वातावरण में, डेस्कटॉप परिवर्तन आसान होते हैं, और सर्वर परिवर्तन (सामान्य रिलीज चक्र के बाहर) को वीपी हस्ताक्षर की आवश्यकता होती है! –

+0

फ़्लिप पक्ष: यदि डेटाबेस में परिवर्तन परिवर्तन स्वीकृत होने से गणना में परिवर्तन अधिक परेशानी हो सकती है तो 3000 उपयोगकर्ताओं को एप्लिकेशन को फिर से रिलीज़ करना। –

संबंधित मुद्दे