为什么Linq to Entities第一次被引用时这么慢

时间:2011-05-12 17:00:34

标签: linq entity-framework

使用Entity Framework 4.0,似乎第一次针对实体框架对象上下文完成(读取或写入)操作时,它需要比第二次更长的时间。例如,第一次查询可能需要10秒(是秒),第二次是.1秒。

我猜第一次构造objectcontext时,它必须在场景数据结构后面构建某种类型?它是在解析EDMX文件(我以为它会在编译时完成吗?)

3 个答案:

答案 0 :(得分:5)

构建视图会在后续调用中缓存。

您可以预先生成视图,以避免第一次出现性能影响:

http://www.dotnetspark.com/kb/3706-optimizing-performance.aspx

答案 1 :(得分:1)

EF具有将实体数据模型(EDM)元数据加载到内存,预编译视图和其他一次性操作的启动费用,您可以尝试使用预热查询来超越它。

答案 2 :(得分:0)

也许您遇到了运行查询的数据库表的问题。因此,第一次运行EF时,它会编译您的查询,创建执行计划等,因此当您第二次运行DB时,会使用查询的缓存版本。尝试向表中添加索引,看看是否有帮助。