हमारी कंपनी एक नया आवेदन है, जो अपने मूल में कुछ हद तक एक बड़े व्यावसायिक डेटा वस्तु है विकसित कर रहा है के साथ कोड-पहले इस्तेमाल करते हैं। हम बाहर इकाई की रूपरेखा आवेदन से डेटाबेस सार करने के लिए पहले कोड के साथ की कोशिश करने का फैसला किया, लेकिन चीजें धराशायी हो गए हैं। व्यापार वस्तु लगभग 60 वर्गों से बना है, और कुल 600 गुणों में से है; हालांकि, यह एक वृक्ष संरचना है और कोई क्रॉसओवर/बैकट्रैकिंग पॉइंटर्स मौजूद नहीं हैं।बेहद धीमी गति से प्रदर्शन इकाई की रूपरेखा 4.1 रिलीज
हमारे परीक्षण डेटाबेस के लिए वर्ग की एक एकल, अप्रारंभीकृत उदाहरण जोड़ने के लिए किया गया था। DbContext का उपयोग करना। हमारी डेटा संरचना पर जोड़ें मेरी विकास मशीन पर 8 मिनट लग गए। क्या यह इस आकार के ऑब्जेक्ट का अपेक्षित प्रदर्शन है? क्या सामान्य समस्याओं की एक सूची है जो इकाई फ्रेमवर्क के साथ खराब प्रदर्शन का कारण बनती है? मुझे लगता है मुझे इसके साथ कुछ मदद की ज़रूरत है।
कुछ अधिक डेटा बिंदु: व्यापार वस्तु की जड़ के तहत प्रथम स्तर में 27 तत्वों रहे हैं। 3 तत्व मौजूद हैं (बाकी ने टिप्पणी की है), जोड़ने का समय 4.5 सेकंड है। 5 तत्व मौजूद हैं, यह 11.8 सेकंड है। 8 तत्व मौजूद हैं, यह 1 मिनट 12.5 सेकेंड है। जाहिर है, इन तत्वों का आकार महत्वपूर्ण रूप से भिन्न होता है, लेकिन ऐसा लगता है कि कुछ प्रकार की व्यवस्थित समस्या का संकेत मिलता है।
क्या आपने एसक्यूएल प्रोफाइलर में एसक्यूएल को देखा है? कभी-कभी एसक्यूएल को देखकर ईएफ क्या करने की कोशिश कर रहा है, इस बारे में बहुत कुछ पता लगाया जा सकता है। मेरी राय में, डीबी में 60 संबंधित वर्गों को सहेजना ईएफ के लिए एक उप-दूसरे ऑपरेशन होना चाहिए। – automagic
हमने यह कोशिश नहीं की थी, क्योंकि हम जानते थे कि यह अंत में डेटाबेस को मार रहा था और सभी प्रोसेसिंग ईएफ के अंदर हो रही थी। ट्रेस बहुत बड़ा है ... मुझे पूरा यकीन नहीं है कि मुझे क्या देखना चाहिए। – dythim
'dbContext.Configuration.AutoDetectChangesEnabled = false;' सेट करने का प्रयास करें, जब आप संदर्भ बनाते हैं और फिर मापते हैं। चूंकि आप कहते हैं कि 'ऐड' धीमा है (और 'सेव चेंज' नहीं है, है ना?) मुझे संदेह है कि स्वचालित परिवर्तन पहचान/स्नैपशॉट निर्माण चीजों को धीमा कर देता है। – Slauma