jdbc - printing millions of rows / JAVA heap space -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 5 जवाब
मैं कुछ के साथ काम कर रहा हूं डेटाबेस और मुझे फ़ाइलों में प्रत्येक डेटाबेस को मुद्रित करने की आवश्यकता है I मेरे सर्वर में 5 जीबी रैम है और मैंने 4 जीबी को टॉमकेट सर्वर के लिए निर्धारित किया है।
मैंने एक सामान्य परिणाम बनाया है जो प्रत्येक डेटाबेस के सभी पंक्तियों से परामर्श करता है। फिर मैं प्रत्येक पंक्ति को एक फ़ाइल (.dat) में प्रिंट करता हूं (जाहिर है मैं अलग से करता हूं)
मैं एक पूरे परिणाम सेट के साथ काम कर सकता हूं जो 5738095 पंक्तियों
लेकिन अगर मैं चाहता हूं 7 लाख से अधिक पंक्तियों के साथ एक डेटाबेस के साथ काम करना मुझे "जावा हीप स्पेस" त्रुटि मिली, मैंने 3 जीबी और 2 जीबी के साथ टॉमकेट के लिए शुरू किया है, लेकिन जब मैंने 3 मिलियन से अधिक पंक्तियों के साथ काम करना शुरू किया तो मुझे अधिक रैम जोड़ने की आवश्यकता थी मेरा सर्वर है, तो मेरा सवाल ये है, क्या मेरे सर्वर पर अधिक रैम लगाने के लिए अच्छा है या मैं "जावा हेप स्पेस" त्रुटि के बिना कैसे परिणाम सेट को विभाजित कर सकता हूं और मिलियन प्रति मिलियन प्रिंट कर सकता हूं।
I 'पूरे डेटाबेस को गिनने में सोच रहे हैं और सीमा 0 की तरह कुछ करो ऑफसेट 1000000, सीमा 1000000 1000001 ऑफसेट, लेकिन ईमानदारी से मैं हार गया पढ़ने और मदद करने और मेरी अंग्रेजी के लिए खेद करने के लिए धन्यवाद।
कुछ कोड है
// numero columnas कॉलम की कुल संख्या rs_datos = StDatos.executeQuery ("से चुनें * तालिका "); जबकि (rs_datos.next ()) {for (int i = 0; i & lt; numeroColumnas; i ++) {if (i + 1 == numeroColumnas) {pw.print (rs_datos.getString (i + 1)); } अन्य पीडब्लू। प्रिंट (आरएस_डेटा.टस्टाइंग (आई + 1) + "|"); } Pw.println (""); } Pw.close ();
आप आवेदन या क्रॉन से कमांड निष्पादित कर सकते हैं और इसका इस्तेमाल प्रारूप में एक दस्तावेज़ बनाने के लिए कर सकते हैं। सीएसवी
Comments
Post a Comment