实体框架查询性能
Posted
技术标签:
【中文标题】实体框架查询性能【英文标题】:Entity Framework query performance 【发布时间】:2012-02-10 17:14:03 【问题描述】:我遇到了一个通过 Entity Framework 执行的相当复杂的查询的问题,该查询花费了很多时间,几乎 50 秒。查询是通过对 Web 服务的临时调用来执行的,该服务会创建一个新的 ObjectContext
,执行查询并返回结果。
问题是,如果我使用 SQL Server Profiler 跟踪 T-SQL 代码并尝试从 SQL Server Management Studio 执行它,它需要大约 2 秒......它会是什么?
谢谢你, 马可
【问题讨论】:
【参考方案1】:对于每一个接触数据库的 ObjectContext,Entity 都会做大量的启动工作来构建数据库模式的内部表示。这可能需要很长时间(我们的项目大约需要 30 秒),并且会计入对数据库进行的第一次查询的费用。随后的速度非常快,直到重新启动该过程。这适用于你吗?
【讨论】:
但是如果我声明一个新的objectcontext实体框架重新创建数据库模式?因为我没有重启应用程序 "new ObjectContext" 不会导致重新创建元数据。但是,如果 IIS 每次都在终止进程或什么...您需要发布一些代码,以便我们可以看到发生了什么。需要查看您如何在客户端和服务器上执行查询。 对不起,我不能发布代码,因为它受到保护,我不允许这样做,但基本上客户端调用在 DAL 层中创建一个新类的服务,该类实例化对象上下文并生成询问。 objectcontext 将被释放,但 IIS 不会终止进程...以上是关于实体框架查询性能的主要内容,如果未能解决你的问题,请参考以下文章