6

Recientemente comencé a aprender Entity Framework.Entity Framework consultas velocidad

Primera pregunta hecha en mi mente es:

Cuando queremos utilizar LINQ para ir a buscar los datos en el EF, cada consulta como esta:

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

serán convertidos a comandos SQL como esto:

select name from contacts 
  1. qué esta conversión repita cada vez que estamos consultando?
  2. Escuché que los procedimientos almacenados se almacenan en la base de datos en caché, ¿este evento ocurre en consultas LINQ en Entity Framework?

¿Y finalmente mi pregunta es clara?

+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 –

Respuesta

5

No se están realizando todo tipo de optimizaciones, tanto en el almacenamiento en caché de expresión LINQ y qué servidor SQL elige para almacenar en caché, la única manera es medir el rendimiento y la velocidad de consumo de memoria

Para ver lo que se crea SQL puede usar http://efprof.com/ que he encontrado bastante bueno. Puede obtener algunos de esta información a través de SQL Profiler, es mucho más trabajo.

7

Creo que la consulta de linq se convierte cada vez que desea ejecutarla. Para mejorar el rendimiento, puede usar compiled queries.

+0

consultas compiladas están disponibles en EF, ¿verdad? – Shahin

+3

Sí: http://msdn.microsoft.com/en-us/library/system.data.objects.compiledquery.aspx –