标准SQL查询比Linq 2 SQL快得多

时间:2009-04-17 13:46:11

标签: .net sql linq

嘿,我的代码出了问题,我比较了在数据库上实现查询的三种方法

  1. 标准SQL查询(来自*选择...)
  2. LinQ查询
  3. 预编译的LinqQuery(CompiledQuery)
  4. 现在我得到的结果是预编译的LingQuery比LinQ查询快5倍,但更有趣的是标准SQL查询比预编译的LinqQuery快大约十倍。我的Queries运行的表是一个简单的表,与其他表没有关联。

    使表变得有趣的事实是它由5列组成,它们代表了我所说的主键。所有列都是唯一的,因此表中没有看起来像另一行的行。所有列都已编制索引。

    有没有人知道LinQ出了什么问题?

    亲切的问候

    塞巴斯蒂安

3 个答案:

答案 0 :(得分:2)

您是否看过linq生成的实际查询?将它们与您的SQL查询进行比较可能会给您一些答案。

您可以使用SQL事件探查器或监听linq datacontext的Out属性吗?你可以在控制台应用程序中这样做:

DataContext ctx = new ...;
ctx.Log = Console.Out;
//Now execute the linq query, and the query will be output to the console.

答案 1 :(得分:2)

只需确保您的查询不会被缓存,这可能会导致结果出现偏差。

答案 2 :(得分:1)

你是如何测量的?您使用所有查询结果,还是仅执行查询? (例如,LINQ可能会为您取结果。)

第二次执行查询时是否会发生这种情况,或者您只是在测量首次执行时间?