आप इसे सही कर रहे हैं -- यह बहुत ही धीमा है, क्योंकि ORM के अतिरिक्त एब्स्ट्रैक्शन का अर्थ है कि आप उस प्रकार के अनुकूलन नहीं कर सकते जो आप चाहते हैं।
उस ने कहा, EntityManager उस बड़े लेनदेन पर धीमा हो जाता है। यदि आपको एक बड़े लेन-देन में उन सभी की बिल्कुल आवश्यकता नहीं है, तो संभवतः आप अपने लूप के प्रत्येक 20-200 पुनरावृत्तियों में फ्लश () आईएनजी और फिर ईएम को साफ़ () करके अधिक प्रदर्शन करने वाला कोड प्राप्त कर सकते हैं।
यदि इससे आपको पर्याप्त प्रदर्शन नहीं मिलता है, तो एकमात्र विकल्प जिसके बारे में मैं सोच सकता हूं, वह है कस्टम कोड पर वापस लौटना जो सीधे आपके DBMS के विरुद्ध कस्टम SQL चलाता है।
मुझे पता है कि यह एक अच्छा जवाब नहीं है, लेकिन कम से कम मैं आपको बता सकता हूं कि आप पागल नहीं हैं।
------ संपादित करें ------
आधिकारिक Doctrine2 लेख से बैच प्रोसेसिंग
:
साथ ही दूरस्थ बनाम स्थानीय . का उपयोग करते समय प्रदर्शन में महत्वपूर्ण अंतर होता है प्रत्येक क्वेरी को दूरस्थ सर्वर पर भेजने के ओवरहेड के रूप में डेटाबेस काफी बड़ा है। लेन-देन और डीबी अनुकूलन के लिए स्थानीय डेटाबेस धन्यवाद का उपयोग करते समय ओवरहेड बहुत कम है। (उदाहरण के लिए प्रश्न में उदाहरण के मामले में 70 सेकंड को घटाकर 300ms कर दिया गया)