linq - LINQ skip & take 是否有不错的性能?

标签 linq sql-server-2008 ado.net skip-take

我们查询了大约 40 个与客户相关的数据字段。查询通常会返回大量记录,例如多达 20,000 条。我们只想使用前 500 个结果。然后,我们只希望能够一次翻阅 10 个。

LINQ 是否会跳过并为此采取合理的方法?使用这种方法与以其他方式手动操作相比,是否存在任何潜在的性能问题?

最佳答案

Take() 不带 Skip() 使用 TOP 子句生成 SQL。

Take()Skip 使用 ROW_NUMBER() 生成 SQL,如图所示 here .

另外,我建议使用优秀的 LINQPad工具或 LINQ to SQL 日志记录来检查生成的查询。

关于linq - LINQ skip & take 是否有不错的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3665031/

相关文章:

sql - sqlcommand.parameters.add() 和 sqlcommand.parameters.addwithvalue() 有什么区别

c# - 跨不同 Linq-to-SQL 上下文的实体相等性

c# - .OrderBy(DayOfWeek) 将星期日视为一周的结束

c# - LINQ to SQL 和空值

sql - 如何在数据库中查找最后一次修改

sql - 查找并替换 SQL 中的所有特殊字符

sql - 在 SQL 中将时间转换为 12 小时格式

c# - 检查 IQueryable 结果集的最佳方法是什么?

c# - 使用 BindingSource 在数据库中保存更改

entity-framework - ADO.NET 实体 : getting data from 3 tables