[英]How to implement paging of rows with WCF and SQL Server?
首先,我是WCF和SQL Server的新手。 我正在开发一个与WCF和SQL Server 2012连接的应用程序。我有一个表,其中的行具有一百万条记录,并且该计数将不断增加。 当客户端发送请求时,如果用户请求,我将获取30行,然后显示接下来的30行,依此类推。 我的要求是在WCF或SQL中进行分页。 我有以下问题:
Skip
and Take
运算符来获取请求的页面。 那是正确的方法吗? OFFSET
(或) ROW_NUMBER() OVER
选项? 由于我是新手,所以这些方法才是我所知道的。 还有其他我不知道的方法吗?
Skip
和Take
则不会在内存中执行这些操作,而是会将其转换为sql查询并在sql中运行。 OFFSET
将为您提供比ROW_NUMBER() OVER
更好的性能。 需要注意的一件事是,如果要进行分页,则必须确保顺序是确定的。 订购中不能有领带,如果允许领带,则可以在分页符上保留一个权利。 假设通过您的订单“绑定”了A行和B行:
在上面的示例中,您从未显示B行。 解决此问题的最简单方法是始终确保您在最后一件事上对主键(或您可以在其上进行唯一索引的任何其他列集)进行排序,以确保您之间没有任何联系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.