जब मैंने अपनी नई परियोजना के लिए एक ओआर/एम (इस समय MySQL के लिए इकाई फ्रेमवर्क) का उपयोग करने का निर्णय लिया, तो मुझे आशा थी कि यह मुझे समय बचाएगा, लेकिन मुझे लगता है कि यह विफल रहा है (दूसरी बार अब)।इकाई फ्रेमवर्क + MySQL - प्रदर्शन इतना भयानक क्यों है?
इस सरल एसक्यूएल क्वेरी
SELECT * FROM POST ORDER BY addedOn DESC LIMIT 0, 50
यह निष्पादित करता है और मुझे के रूप में एक दूसरे से कम में परिणाम देता है ले लो यह (टेबल 60,000 के बारे में पंक्तियां हैं) होना चाहिए।
यहाँ संस्थाओं क्वेरी करने के लिए बराबर LINQ है कि मैं इस
var q = (from p in db.post
orderby p.addedOn descending
select p).Take(50);
var q1 = q.ToList(); //This is where the query is fetched and timed out
के लिए लिखा था है लेकिन इस क्वेरी कभी नहीं भी (orderby बिना यह 5 सेकंड चलाने के लिए ले जाता है) का समय समाप्त हमेशा यह निष्पादित करता! मेरा टाइमआउट 12 सेकंड पर सेट है ताकि आप कल्पना कर सकें कि इससे ज्यादा कुछ ले रहा है।
- ऐसा क्यों हो रहा है?
- क्या कोई तरीका है कि मैं देख सकता हूं कि वास्तविक SQL क्वेरी क्या है जो इकाई फ्रेमवर्क डीबी को भेज रहा है?
- क्या मुझे ईएफ + माईएसक्यूएल पर छोड़ देना चाहिए और इसे मानक बनाने के लिए सभी अनंत काल को खोने से पहले मानक एसक्यूएल में जाना चाहिए?
मैं अपने अनुक्रमित अंशांकित किया है, उत्सुक लोड हो रहा है,
कृपया मदद (जो वास्तव में यह orderby खंड के बिना भी असफल बनाता है) के बारे में मैं या किसी खोए हुए के रूप में MySQL के लिए/एम देने के लिए कर रहा हूँ की कोशिश की कारण।
ठीक है, मैंने छोड़ दिया है और EF + MySQL –