C# GetExecutionPlan并确保重新连接导致EF的性能非常慢

C# GetExecutionPlan并确保重新连接导致EF的性能非常慢,c#,entity-framework,entity-framework-4,C#,Entity Framework,Entity Framework 4,我正在使用实体框架在我的SQLServer2008R2数据库中查找(并保存)实体。我的问题在于一个简单的ObjectContext.FirstOrDefault调用(尽管它是通过一个IRepository模式抽象的) 我注意到了非常糟糕的表现。所以附加了一个探查器,发现我运行的第一个查询是大多数减速的地方 所以我首先想到的是我的指数不好。但在SSMS中运行查找几乎是瞬时的。(这不是问题。)我也尝试了切换我调用的第一个查询,而性能影响主要停留在第一个查询上 EF调用的两个方法占用了我大量的运行时间

我正在使用实体框架在我的SQLServer2008R2数据库中查找(并保存)实体。我的问题在于一个简单的
ObjectContext.FirstOrDefault
调用(尽管它是通过一个IRepository模式抽象的)

我注意到了非常糟糕的表现。所以附加了一个探查器,发现我运行的第一个查询是大多数减速的地方

所以我首先想到的是我的指数不好。但在SSMS中运行查找几乎是瞬时的。(这不是问题。)我也尝试了切换我调用的第一个查询,而性能影响主要停留在第一个查询上

EF调用的两个方法占用了我大量的运行时间。他们正在制定执行计划并确保重新连接

如果我想使用EF,这些只是我必须处理的开销吗?或者有没有办法优化这些调用

我想到的一件事是重新使用实体框架ObjectContext。我认为,如果我这样做了,那么缓存将克服一些慢下来的问题。然而,我读到了一些关于重用ObjectContext的不好的东西(这就是为什么我在每次服务调用中都要创建一个新的ObjectContext)。

类似