首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinqToSQL DateTime filters?

LinqToSQL DateTime filters?
EN

Stack Overflow用户
提问于 2009-07-18 23:19:17
回答 3查看 100关注 0票数 0

我得到了一个linqtosql查询,通过一个数据列进行过滤和排序,运行时间为20秒。

代码语言:javascript
复制
var myObjs = DB.Table
.Where(obj => obj.DateCreated>=DateTime.Today)
.OrderByDescending(obj => obj.DateCreated);

该表只有100,000条记录,并且对DateTime列进行了索引。

这只是一长串linqtosql性能抱怨中的又一个。但是这个太糟糕了,我想我一定是做错了什么。

EN

回答 3

Stack Overflow用户

发布于 2009-07-18 23:24:51

我怀疑不同之处在于,尽管运行生成的查询只需要0秒,但这是因为如果您使用Enterprise Manager之类的工具,它实际上不会向您显示所有结果。仅获取(和反序列化) 100,000个结果的所有数据可能会花费大量时间,但您的手动查询可能只显示前20个命中或类似的结果。

如果您在.NET中运行相同的SQL并使用DataReader获取所有数据,那么需要多长时间?

如果在开启分析的情况下运行服务器,那么从LINQ到SQL执行查询需要多长时间?

票数 1
EN

Stack Overflow用户

发布于 2009-07-18 23:42:22

谢谢你们..。

问题是我的,而不是linq的,为了简洁起见,我缩短了问题中的查询,但实际上有另一个过滤器已经应用于非索引列。添加索引解决了这个问题。

然而,正如Jon Skeet所建议的,在Sql Mgmt studio中运行查询给人一种错误的信心,因为查询被分页,并且非常快地返回前20行,这让我认为linq是罪魁祸首。因此,索引问题只出现在linq中,而不出现在sql mgmt studio中。

票数 1
EN

Stack Overflow用户

发布于 2009-07-18 23:27:58

我看不出您的查询中有任何错误。如果能看到Linq生成的T-SQL,那就太好了。你试过了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1148856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档