SqlServer 多种分页方式 (含简单速度测试)

本文详细介绍了SQLServer的六种分页方法,包括Offset and Fetch、row_number()以及其变种、not in/top、not exists和max/top方式,并提供了50万数据量的分页速度测试。测试结果显示,使用Offset and Fetch以及row_number()方式在带有索引排序的情况下速度较快,而not in/top、not exists和max/top方式相对较慢。
摘要由CSDN通过智能技术生成

SQLServer分页方式

附带50万数据分页时间[本机访问|已重启SQL服务|无其他程序干扰][非索引排序]
环境 WIN7 SQL服务12.04 SQL管理器SSMS14.01

1.Offset and Fetch 方式分页 [SqlServer2012+]

OFFSET 起始值 ROWS FETCH NEXT 每页条数 ROWS ONLY

1.分页条件不能重复,建议使用 分页条件+主键 一起作为 分页参数
2.分页语句中 FIRST=NEXT ROWS=ROW
3.不使用排序可以用 order by (select 1)

使用 OFFSET FETCH 方式分页必须带order by key 其中key 必须是唯一值 不然会导致错误

select * from (
select * from sysrizhi 
 ) table_temp order by riqi desc,sysrizhiid desc offset 10 rows fetch next 10 rows only

50万行执行时间 770毫秒 索引排序10毫秒

select * from tcpliushui order by riqi OFFSET 100 ROWS FETCH NEXT 20 ROWS ONLY

2.row_number(

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值