在System.Data.Linq.DataContext对象上重新编译Query-Hint

时间:2013-02-19 21:23:26

标签: sql sql-server linq linq-to-sql datacontext

我有一个DataContext对象调用的查询正在创建一个效率极低的执行计划。我想在查询中添加一个“OPTION(RECOMPILE)”查询提示,但我不知道如何将此查询提示添加到DataContext对象的查询中。

我运行了一条SQL跟踪来捕获查询。我按原样手动运行它,花了差不多四分钟,通过在查询中添加“OPTION(RECOMPILE)”,它将运行时间减少到一秒。该查询包含许多变量,一对表值函数和一个具有嵌入式表值函数的视图。所有输入变量都是数字。两次执行之间的查询计划非常不同。

我不需要帮助优化代码以避免糟糕的执行计划;如果我需要走这条路,我可以自己做。我需要知道的是,是否有办法将OPTION(RECOMPILE)查询提示添加到我的Linq查询中。我不会发布代码,这与我的问题无关。

如果可以添加重新编译查询提示,请告诉我如何以及如果不可能请提供指向这种情况的文档的链接,我将不胜感激。

我正在使用SQL Server 2012作为我的rdbms。

1 个答案:

答案 0 :(得分:1)

针对EF请求将来添加提示时存在问题 - http://entityframework.codeplex.com/workitem/261

如果你很幸运,它会进入EF 6。