2012-07-24 14 views
6

मुझे लेनदेन के साथ स्क्लाइट आवेषण प्रदर्शन के साथ परेशानी हो रही है। मेरा एंड्रॉइड ऐप वेब सेवा से लगभग 23,000 पंक्तियां प्राप्त करता है और मुझे उन्हें एक ही टेबल में डालना होगा। ताकि मैं WS के लिए हर अनुरोध में लगभग 2000 पंक्तियों प्राप्त करते हैं और मैं एक सौदे के भीतर 2000 आवेषण लपेटSQLite सम्मिलन लेनदेन के साथ भी धीमे हो जाते हैं

वेब सेवा विभाजित है। उन प्रविष्टियों के बाद मैं डब्ल्यूएस को नया अनुरोध भेजता हूं और फिर नई 2000 पंक्तियों के लिए एक नया लेनदेन का उपयोग करता हूं।

शुरुआत में यह ठीक काम करता है। यह प्रति सेकंड बहुत सारे आवेषण करता है। लेकिन उस समय के साथ यह धीमा हो जाता है और अंततः 23000 पंक्तियों को पूरा होने तक प्रति सेकंड 4 या 3 आवेषण के साथ समाप्त होता है।

वहाँ तालिका का आकार के साथ एक समस्या है? जब यह बड़ा हो जाता है तो आवेषण धीमा हो जाता है? क्या उस बड़ी मात्रा में डेटा के प्रदर्शन में सुधार करने का कोई तरीका है?

आपकी मदद के लिए धन्यवाद।

+3

क्या आपके पास कोई अनुक्रमणिका है जो इसे धीमा कर सकती है? और क्या आप वाकई एक समय में केवल 2000 डालने वाले हैं, और नहीं (अब तक सभी डेटा प्राप्त हुए हैं)? –

+3

यह एक COMMIT की अनुपस्थिति में विस्तारित लेनदेन कार्य सेट की तरह लगता है। – DaveE

+0

वैसे यह सब आपके द्वारा डाले जा रहे डेटा पर निर्भर करता है, तार आपके डीबी को धीमा कर देंगे। बाइट्स के मामले में उन 2000 पंक्तियों का आकार क्या है? 2000 पंक्तियों को डालने के बाद डीबी फ़ाइल में आकार अंतर क्या है। मेरे पास 388000 पंक्तियों और इसकी 64 एम फ़ाइल आकार के साथ एक डीबी है लेकिन डेटा सभी युगल है। – JPM

उत्तर

1

सवाल How Do I Improve The Performance of SQLite? जो काफी अच्छा है में SQLite प्रदर्शन को कवर एक उत्कृष्ट धागा नहीं है। यदि आप पहले से उनका उपयोग नहीं कर रहे हैं तो मैं कम से कम तैयार बयान के लिए जाऊंगा।

लेकिन, जैसा कि आप Android पर कर रहे हैं, मैं अनुमान लगा रहा हूँ कि आप कुछ मैं/हे फ़्लैश मेमोरी में लेखन बाधाओं को में चल रहा हो सकता है। अलग-अलग निर्माताओं से कुछ अलग-अलग उपकरणों पर कोड चलाने का प्रयास करें, यह भी देखें कि क्या कोई चरम बदलाव है या नहीं।

0

आपको डेटा के विभाजन का उपयोग करना चाहिए। क्योंकि आप 100 से 100 प्रविष्टियां एक-एक करके सम्मिलित कर सकते हैं ताकि प्रक्रिया सुचारू रहे और कोई डेटा खोने की समस्या न हो।

एक और बात मैं यह सोचते हैं कि आप asynch उपयोग कर रहे हैं धागा (अन्य हो सकता है)।

या आप भी पिछले मामले में सेवा का उपयोग एक बार में सभी डेटा का उपभोग कर सकते हैं।

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