Posts recientes

El contenido de este blog tiene una licencia Creative Commons.
Creative Commons

Consejos para mejorar el rendimiento de tu Entity Framework (IV)   

Usar consultas pre-compiladas.

La creación de consultas consume sobre un 10% de la ejecución de ésta. Algunas partes se cachean y las siguientes son más rápidas, pero otras partes no, así que se reconstruye cada vez que la consulta se ejecuta (a no ser que se use EntitySql).

Por eso cuando una aplicación ejecuta muchas veces consultas que tienen una estructura similar en EF se mejora el  rendimiento si se compila la consulta una vez y se ejecuta varias veces con parámetros diferentes que son especificados en tiempo de ejecución. 
Para ello se usa el método CompiledQuery.Compile, el cual usa un delegado Func genérico. Almacenando y usando de este modo también se reduce el coste de hacer una llamada virtual, cada vez que accedes a la colección, que de hecho se reduce a una llamada. Además, ésta será compilada sólo la primera vez que la consulta se ejecute. Pero, si usas CompiledQuery , asegúrate de que se llama a la consulta más de una vez, ya que  la primera vez que se lanza, tarda el doble de tiempo que una consulta simple sin cachear.

Éste es el ejemplo  de Microsoft  para la creación de una consulta compilada:

static readonly Func> s_compiledQuery2 = 
    CompiledQuery.Compile>(
            (ctx, total) => from order in ctx.SalesOrderHeader
                            where order.TotalDue >= total
                            select order);


Para más información, o ver el código completo se puede consultar el artículo completo de Microsoft.

Via: http://msdn.microsoft.com/en-us/library/bb399335.aspx

 
Publicado  en  05/03/2010  por  Isabel Cabezas
0  Comentarios  |  Trackback Url  | 0  Enlaces a este post | Bookmark este post con:          
Etiquetas: ASP.NET, C#, Entity Framework, VS 2008
Technorati Tags: , , ,
 

Vinculos a este post

Comentarios