gpt4 book ai didi

c# - 两个相等性检查在一个 Where 中,反之亦然以提高效率

转载 作者:行者123 更新时间:2023-11-30 17:34:58 24 4
gpt4 key购买 nike

在 linq-to-sql 中,我们期望哪个示例(如果有)的评估效率更高/更快?他们编译成同一个sql吗?在这些示例之间进行选择时,还有其他我应该考虑的因素吗?

(使用 DbContext 上下文)

context.Events
.Where(evt => evt.Date <= endDate && evt.Date > startDate);

或者...

context.Events
.Where(evt => evt.Date <= endDate)
.Where(evt => evt.Date > startDate);

最佳答案

正如 juharr 上面所说,两者都生成完全相同的 SQL 查询。

出于好奇,我对自己的数据库进行了时间测试,发现 && 生成查询的速度相当快。

            for (int i = 0; i < 500; i++)
{
var wko = db.WorkOrders
.Where(evt => DateTime.Now > evt.LastModified)
.Where(evt => DateTime.Now > evt.Opened);
}
for (int i = 0; i < 500; i++)
{
var wko2 = db.WorkOrders
.Where(evt => DateTime.Now > evt.LastModified && DateTime.Now > evt.Opened);
}

第一个循环在 <= 24 毫秒内完成第二个循环在 <= 16ms 内完成

我确信这通常对您的表现影响很小,但仅供引用。

关于c# - 两个相等性检查在一个 Where 中,反之亦然以提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41744142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com