Performance 在EntityFramework中将查询编译与执行分开

Performance 在EntityFramework中将查询编译与执行分开,performance,entity-framework,ef-code-first,Performance,Entity Framework,Ef Code First,我们的应用服务器存在性能问题。一个可能的怀疑是,在某些情况下,编译Linq2Entity查询的时间变得不合理地长。 我们正在扩展日志系统,以包括已执行的sql。 我计划使用iQuery的.ToString()方法来获取sql 这会迫使EF编译查询吗 当我们枚举IQueriable并避免重新编译查询时,EF会使用此计划吗 这有什么坏处吗 是-EF将通过查询管道(包括生成实际SQL查询的提供程序)运行查询 这取决于您是否在.NET Framework 4.5上使用EF,查询将自动编译和缓存(有关更多

我们的应用服务器存在性能问题。一个可能的怀疑是,在某些情况下,编译Linq2Entity查询的时间变得不合理地长。 我们正在扩展日志系统,以包括已执行的sql。 我计划使用
iQuery
.ToString()
方法来获取sql

  • 这会迫使EF编译查询吗
  • 当我们枚举
    IQueriable
    并避免重新编译查询时,EF会使用此计划吗
  • 这有什么坏处吗
  • 是-EF将通过查询管道(包括生成实际SQL查询的提供程序)运行查询
  • 这取决于您是否在.NET Framework 4.5上使用EF,查询将自动编译和缓存(有关更多详细信息,请参阅)
  • 如果查询是编译和缓存的,则可能不会