6

हाल ही में मैंने एंटीटी फ्रेमवर्क सीखना शुरू कर दिया।इकाई फ्रेमवर्क क्वेरीज गति

पहले मेरे मन में बना सवाल यह है:

हम एफई में डेटा प्राप्त करने में करने के लिए LINQ का उपयोग करना चाहते हैं, इस तरह हर क्वेरी:

var a = from p in contacts select p.name ; 

एसक्यूएल में धर्मान्तरित हो जाएगा इस तरह आदेश:

select name from contacts 
  1. इस दोहराने परिवर्तित करता है हर बार है कि हम जानना चाहते हैं?
  2. मैंने सुना है कि संग्रहीत प्रक्रिया डेटाबेस में कैश की जाती है, क्या यह घटना Entity Framework में LINQ क्वेरीज़ में होती है?

और अंत में मेरा प्रश्न स्पष्ट है?

+0

http://www.codeproject.com/KB/linq/performance_comparisons.aspx http://www.codeproject.com/KB/linq/LINQquery.aspx http://dotnetkicks.com/architecture/Performance_comparison_between_Linq_NHibernate_and_Stored_Procs http: //geekswithblogs.net/iupdateable/archive/2009/03/17/linq-to-sql-and-linq-to-entities-entity-framework-performance.aspx –

उत्तर

5

वहाँ अनुकूलन के सभी प्रकार के प्रयास किए जा रहे, LINQ अभिव्यक्ति कैशिंग में और क्या एसक्यूएल सर्वर कैश करने के लिए चुनता है, एक ही रास्ता अपने प्रदर्शन गति और स्मृति की खपत को मापने के लिए है दोनों

देखने के लिए क्या एसक्यूएल आप बनाई गई है http://efprof.com/ का उपयोग कर सकते हैं जो मुझे काफी अच्छा मिला है। आप SQL प्रोफाइलर के माध्यम से इस जानकारी के कुछ प्राप्त कर सकते हैं, यह बहुत अधिक काम है।

7

मुझे लगता है कि प्रत्येक बार जब आप इसे निष्पादित करना चाहते हैं तो linq क्वेरी परिवर्तित हो जाती है। प्रदर्शन में सुधार करने के लिए आप compiled queries का उपयोग कर सकते हैं।

+0

संकलित प्रश्न ईएफ में उपलब्ध हैं, है ना? – Shahin

+3

हां: http://msdn.microsoft.com/en-us/library/system.data.objects.compiledquery.aspx –

संबंधित मुद्दे