【发布时间】:2015-12-19 20:35:05
【问题描述】:
我有一个复杂的 LINQ to EF 查询超时。在调试时我添加了一个Take(200),它没有超时。奇怪的是它只返回了 127 行!
换句话说,添加Take 加快了查询速度即使它并没有改变结果。是什么原因造成的?
为了澄清,生成的 SQL 完全相同,除了 Take(200) EF 将 TOP 200 添加到 SELECT。
【问题讨论】:
-
您是否比较了使用
Take(200)和不使用Take(200)从查询生成的SQL? -
嗯,你可以查看生成的sql
-
@AlbertoMonteiro 它将
TOP 200添加到SELECT,就像您期望的那样。它没有进行其他更改。 -
您是否尝试在不使用 SQL Management Studio 的情况下从查询中执行生成的 SELECT?它会超时吗?
-
@AlbertoMonteiro 在 SSMS 中没有速度差异。
标签: c# entity-framework linq sql-server-2008