मुझे एक विशाल तालिका को कस्टम एक्सएमएल फ़ाइल में बदलने के लिए एक कार्य दिया गया है। मैं इस नौकरी के लिए जावा का उपयोग करूँगा।विशाल तालिका से सभी रिकॉर्ड्स पुनर्प्राप्त करते समय ओओएम (स्मृति से बाहर) त्रुटि से कैसे बचें?
यदि मैं बस "ग्राहक से चुनें" जारी करता हूं, तो यह बड़ी मात्रा में डेटा लौटा सकता है जो अंततः ओओएम का कारण बनता है। मुझे आश्चर्य है, क्या एक तरीका है कि मैं उपलब्ध होने के तुरंत बाद रिकॉर्ड को संसाधित कर सकता हूं, और उसके बाद एसक्यूएल पुनर्प्राप्ति प्रक्रिया के दौरान स्मृति से रिकॉर्ड हटा सकता हूं?
--- पर 13 जुला 2009
संपादित मुझे मेरे सवाल का विस्तार से बता दें। मेरे पास 1 डीबी सर्वर और 1 एप्लीकेशन सर्वर है। जब मैं एप्लिकेशन में एक चुनिंदा क्वेरी जारी करता हूं, तो डेटा डीबी सर्वर से ऐप सर्वर तक यात्रा करेगा।
मुझे विश्वास है (अगर मैं गलत हूं तो मुझे सही करें) परिणामसेट को क्वेरी में सभी रिकॉर्ड प्राप्त होने तक प्रतीक्षा करने की आवश्यकता होगी। यहां तक कि यदि हम 1000-रिकॉर्ड तालिका के लिए 4 के रूप में लाने का आकार सेट करते हैं, तो भी हम ऐप सर्वर की ढेर मेमोरी में 1000 रिकॉर्ड प्राप्त करते हैं, क्या यह सही है? प्राप्त आकार केवल/से डीबी सर्वर से राउंड ट्रिप की संख्या को प्रभावित करता है।
मेरा सवाल है कि ऐप सर्वर पर आने के तुरंत बाद उस 4 (या किसी भी संख्या) रिकॉर्ड पर प्रसंस्करण कैसे शुरू करें, और ऐप सर्वर में मेमोरी को खाली करने के लिए इसका निपटान करें?
कौन सा एसक्यूएल सर्वर हो रहा है है आप उपयोग कर रहे हैं (यानी एमएस, ओरेकल, MySQL, आदि)? आप जो भी उपयोग कर रहे हैं उसके आधार पर इस मुद्दे को संभालने के विभिन्न तरीके हैं। –
कृपया वह कोड दिखाएं जिसका उपयोग आप रिकॉर्ड्स को पुनर्प्राप्त करने के लिए करते हैं। यह स्पष्ट नहीं है कि आप बस उन पर फिर से चलते हैं, या उन्हें कुछ संग्रह में स्थानीय रूप से स्टोर करते हैं और फिर उस पर फिर से शुरू होते हैं। –
मैं इस कार्य के लिए ओरेकल का उपयोग करने जा रहा हूं। मैंने अभी तक कोई कोड शुरू नहीं किया है, क्योंकि मैं अभी भी ऐसा करने का सबसे अच्छा तरीका खोज रहा हूं :) – janetsmith