实体框架查询速度

Sha*_*hin 6 performance linq-to-entities entity-framework entity-framework-4

最近我开始学习实体框架.

在我看来,第一个问题是:

当我们想使用LINQ来获取EF中的数据时,每个查询都是这样的:

var a = from p in contacts select p.name ;
Run Code Online (Sandbox Code Playgroud)

将转换为SQL命令,如下所示:

select name from contacts
Run Code Online (Sandbox Code Playgroud)
  1. 每次我们查询时,这种转换会重复吗?
  2. 我听说存储过程缓存在数据库中,这个事件是否发生在Entity Framework中的LINQ查询中?

最后我的问题清楚了吗?

Lad*_*nka 7

我认为每次要执行时都会转换linq查询.要提高性能,您可以使用已编译的查询.

  • 是的:http://msdn.microsoft.com/en-us/library/system.data.objects.compiledquery.aspx (3认同)

Ada*_*han 5

在linq表达式缓存和SQL服务器选择缓存的内容中,都进行了各种优化,唯一的方法是测量性能速度和内存消耗

要查看创建的SQL,可以使用http://efprof.com/,我发现它非常好.你可以得到一些通过SQL事件探查这个信息的,它只是多了很多的工作.