Sql server 2008 实体框架4-存储过程非常慢

Sql server 2008 实体框架4-存储过程非常慢,sql-server-2008,entity-framework,stored-procedures,Sql Server 2008,Entity Framework,Stored Procedures,从Management Studio执行时,存储过程在通过EF执行的SP中完成,始终返回所有行,这可能是延迟 也许发布您的SP和原始EF生成的SQL会有所帮助 编辑以添加看似解决方案的内容 另一种想法(从过去的几天开始)参数嗅探常常是SP运行速度慢的罪魁祸首,该SP由一个参数不好的开发人员运行,然后设置了一个糟糕的执行计划。添加WITH RECOMPILE选项以获得基于适当参数的新计划将主要解决此问题。另一个骗局是将传入的参数分配到本地sql变量(SP的本地)中,并且在查询中只使用本地变量 现在

从Management Studio执行时,存储过程在通过EF执行的SP中完成,始终返回所有行,这可能是延迟

也许发布您的SP和原始EF生成的SQL会有所帮助

编辑以添加看似解决方案的内容

另一种想法(从过去的几天开始)参数嗅探常常是SP运行速度慢的罪魁祸首,该SP由一个参数不好的开发人员运行,然后设置了一个糟糕的执行计划。添加WITH RECOMPILE选项以获得基于适当参数的新计划将主要解决此问题。另一个骗局是将传入的参数分配到本地sql变量(SP的本地)中,并且在查询中只使用本地变量


现在您有了一个具有良好执行计划的SP,您应该能够删除“with RECOMPILE”,它仍然可以工作。我想说,参数嗅探问题很少出现。

“EF总是返回所有行”。不知道你的意思。它返回我期望的行,即与通过MSSMS执行时相同。将更新问题。我的意思是,如果您对使用SP的实体应用Linq查询,那么在应用Linq查询之前,所有记录都将从SP返回,而straight EF会根据Linq更改发送给DB的SQL。我不确定您是否在查询中使用Linq只获取了一些记录,但执行SP将返回数千条记录。我希望这是清楚的-看起来不像!我还想补充一点,也许你可以试着用ADO.Net直接调用SP,完全去掉EF,看看性能是否有变化。试过之后,性能也一样差。让我印象深刻的是,当从MSMS以外的任何地方调用reads时,它总是1994243。从MSSMS来看,它始终是4609。另一种想法(从过去的几天开始)参数嗅探常常是SP运行缓慢的罪魁祸首,该SP由一个参数不好的开发人员运行,然后设置了一个糟糕的执行计划。添加WITH RECOMPILE选项以获得基于适当参数的新计划将主要解决此问题。另一个骗局是将传入的参数分配到本地sql变量(SP的本地)中,并且在查询中只使用本地变量。
var menuTags = db.GetMenuTags(2, "en-US");
exec [dbo].[GetMenuTags] @CustTypeId=2,@LanguageId='en-US                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           '