2012-11-29 6 views
5

मुझे एक धारणा है कि प्रश्नों की एक क्वेरी को कॉल करना डेटाबेस से एक क्वेरी से तेज़ है, क्योंकि मंदी सीएफ और डीबी के बीच संचार में है। क्या ये सच है।सीएफ़ - क्यूओक्यू बनाम क्वेरी

क्या इसका मतलब यह है कि एक लूप के भीतर एक क्यूओक स्वीकार्य है, जबकि एक लूप के भीतर एक क्वेरी नहीं है।

उत्तर

13

पूर्ण डीबीएमएस को [उचित रूप से लिखित] प्रश्नों को प्रोसेस करने के लिए अत्यधिक अनुकूलित किया गया है, और आधुनिक नेटवर्क पर ओवरहेड बड़ा नहीं होगा।

क्यूओक्यू एम्बेडेड डेटाबेस का उपयोग करके किया जाता है, जो कि क्वेरी के प्रकार के आधार पर अनुकूलित किया जा सकता है या नहीं।

तो, यदि डेटाबेस एक धीमी नेटवर्क पर एक अलग मशीन पर है, तो कुछ स्थितियों में क्यूओक कम धीमा हो सकता है। यदि आप डेटाबेस को मार रहे हैं, तो आप आदर्श रूप से एक अनुरोध में, सब कुछ उचित तरीके से संसाधित करना चाहते हैं, और दोनों राउंड-ट्रिप से बचें और लूप में पुन: प्रसंस्करण करें।

बेशक, क्यूओक्यू का एक बड़ा लाभ यह है कि आप डेटाबेस से नहीं आने वाले डेटा को संसाधित करने के लिए इसका उपयोग कर सकते हैं - जैसे कि सीएफडी डायरेक्टरी या सीएसवी फ़ाइल के परिणाम जो एक क्वेरी में परिवर्तित हो गए हैं।


कोल्डफ्यूज़न मैन्युअल रूप से एसक्यूएल को पार्स करके और फिर रिकॉर्डसेट के माध्यम से लूपिंग करके क्यूओक्यू करता है। यह सरल संचालन के लिए सक्षम बनाता है, जैसे दो-टेबल मिलान कुंजी के साथ जुड़ते हैं, लेकिन जटिल संयोजनों के लिए कम कुशल (जहां एकाधिक कॉलम का उपयोग करने में शामिल होता है और/या सीधे ए = बी तुलना नहीं होता है)। (Brief info here।)

रेलो H2 का उपयोग करता है। एच 2 तेजी से दावा करता है, और उनकी वेबसाइट कुछ speed comparisons प्रदान करती है जो सुझाव देती है कि यह डर्बी और माईएसक्यूएल से तेज़ है - लेकिन निश्चित रूप से स्वतंत्र तृतीय-पक्ष परीक्षणों की तलाश करना सबसे अच्छा होगा, यह उल्लेख न करें कि ये परीक्षण QoQ प्रदर्शन की गारंटी नहीं हैं (जो मुझे संदेह है कि इंडेक्स नहीं है, उदाहरण के लिए)।


सामान्य में: पहले यह निर्धारित करने के लिए आप वास्तव में प्रदर्शन में सुधार करने, और निष्पक्ष निर्धारित करने के लिए कौन सी विधि वास्तव में तेजी से होता है में सक्षम होना चाहिए कि निष्पादन परीक्षण कर के बिना किसी भी कठोर निर्णय नहीं बनाते हैं।

+0

डर्बी का उपयोग एसीएफ की क्यूओक्यू सुविधाओं में नहीं किया जाता है। कम-ओवरहेड डेटाबेस तक आसानी से पहुंचने के लिए डर्बी को इसके साथ शामिल किया गया है। एसीएफ का क्यूओक्यू मैनुअल एसक्यूएल पार्सिंग और रिकॉर्ड्स बदलने के लिए लूपिंग जैसे कुछ और उपयोग करता है। –

+2

ई। :/क्या उस पर कोई और जानकारी है जिस पर आप इंगित कर सकते हैं, इसलिए मैं तदनुसार उत्तर अपडेट कर सकता हूं? –

+0

मेरे पास एडोब कर्मियों और अनुभव के वर्षों के साथ बातचीत के अलावा कोई बाहरी संसाधन नहीं है: पी –

3

मुझे पता चला है कि क्यू का क्यू का उपयोग करके डीबी को एक क्वेरी से खींचने से बहुत तेज हो सकता है।

उदाहरण के लिए, मैं धार्मिक रूप से बिक्री रिपोर्ट पर क्यूओक्यू का उपयोग करता हूं। मेरे पास एक बिक्री रिपोर्ट है जिसे पहली तिमाही की तारीख सीमा के लिए खींचा जाएगा, जो बिक्री एजेंट द्वारा बिक्री आंकड़े दिखा सकता है, और यह बेचे गए उत्पाद द्वारा बिक्री आंकड़े भी दिखा सकता है।

मेरे डीबी में, एक ही टेबल/फ़ील्ड्स का उपयोग उन दोनों वर्गों के लिए किया जाएगा जो एक ही रिपोर्ट पर दिखाई देंगे।

मैं दिनांक सीमा के आधार पर अपने डेटा के लिए मुख्य तालिका से पूछता हूं, और फिर मैं उन परिणामों से पूछता हूं कि मेरी रिपोर्ट के प्रत्येक अनुभाग का निर्माण किया जाए।

मुझे पता चला कि यह विधि दोनों सर्वरों पर डीबी स्थानीय और रिमोट के साथ तेज थी।

+1

क्या आपके पास डीबीए आपके डेटाबेस और प्रश्नों पर है? एक त्रैमासिक बिक्री रिपोर्ट में बहुत अधिक डेटा होने की संभावना है, और कुछ ऐसा हो जो डीबीएमएस को अनुकूलित किया जा सके। –

+0

मेरे पास इसी तरह के परिणाम हैं। कभी-कभी किसी भी कारण से डेटाबेस धीमे होते हैं। कभी-कभी आप सीएफ में अपने प्रश्नों में शामिल होना चाहते हैं या संघ में शामिल होना चाहते हैं। कभी-कभी क्यूओक्यू रास्ता तेज होता है। धन्यवाद स्टीव। –

4

यह आपके डेटाबेस सर्वर की तुलना में आपके कोल्डफ्यूजन मशीन की क्षमताओं पर निर्भर करता है, और जिस समस्या को आप हल करने का प्रयास कर रहे हैं।

क्यूफक आमतौर पर छोटे डेटासेट के लिए बहुत तेज़ होगा क्योंकि यह सब आपके सर्वर मेमोरी में होता है।यदि आप एक बड़े डेटासेट पर क्यूफक्यू का उपयोग करने का प्रयास करते हैं, तो आपके सर्वर को स्मृति में उस डेटा को रखने और संसाधित करने के साथ जुड़े ओवरहेड के कारण समस्याएं शुरू हो जाएंगी।

डाटाबेस प्रश्न आमतौर पर बड़े डेटासेट पर QofQ से बेहतर प्रदर्शन करेंगे क्योंकि यही है कि वे के लिए डिज़ाइन किए गए हैं। बड़ी मात्रा में डेटा प्रोसेसिंग पर डेटाबेस बहुत तेज़ होते हैं। इसके लिए उनका इस्तेमाल करें।

यदि आप डेटाबेस से बड़े परिणाम सेट को पुनर्प्राप्त करने और इसे QofQ के साथ पार्स करने पर विचार कर रहे हैं, तो शायद यह करने का गलत तरीका है। डेटाबेस को इसके बजाय परिणामों को कम करें। यदि आप अक्सर इस जानकारी के लिए डेटाबेस सर्वर से पूछ रहे हैं, तो इसे अपने सर्वर पर कैश करें।

ध्यान रखें कि यह सभी व्यक्तिपरक है और आपकी विशेष समस्या, लोड, डेटाबेस और सर्वर क्षमताओं पर बहुत निर्भर करेगा।

3

टाइम्स QofQ

  • आप दो datasources है जब उपयोग करने के लिए और विभिन्न कारणों से आपसे जुड़ा हुआ सर्वर
  • उपयोग कर सकते हैं जब डेटा WDDX या JSON के माध्यम से आता है और आप एक में शामिल होने के
  • क्या करना है जब यह एक कैश्ड क्वेरी में डेटा संग्रहीत करने के लिए व्यावहारिक है और कैश की गई क्वेरी
  • के खिलाफ QofQ कर आप() एक डेटा बेस के खिलाफ एक directoryList का परिणाम शामिल होने के लिए जब
यदि आप एक struct में डेटा लोड कर सकते हैं जब 10

टाइम्स QofQ

  • का उपयोग नहीं करने के बजाय
  • जब पुनरावृत्तियों की एक विशाल संख्या कर कर
  • जब स्रोत डेटा सेट में से एक बहुत बड़ी है
  • यदि आप बाईं, सही करने के लिए, या बाहरी

में शामिल होने के लिए और अधिक विवरण देखने की जरूरत है

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0e4fd-7ff0.html

यह सीएफ 9 के लिए है, लेकिन QofQ ही के बारे में सीएफ 6 के बाद से

+0

आह हाँ, मैंने यह उल्लेख करने के लिए उपेक्षा की कि मेरा क्यू एक जॉइन का उपयोग कर रहा है, जो – Daniel

+0

में बड़ी भूमिका निभाता है आप आंतरिक सूची –

+0

ग्रेट लिस्ट में शामिल हो सकते हैं, अच्छी तरह से कहा गया है! –

0

Dude दिया गया है! बस cachedwithin इस्तेमाल किया।

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