SqlServer2005高效分页sql查询语句

本文介绍三种SQLServer2005高效分页查询方法:max方案、top方案及row方案,并对比其优缺点及执行效率。通过实际测试数据,展示不同分页方案在大量数据情况下的性能表现。

几种sqlserver2005高效分页sql查询语句
top方案:
   sql code:

select top 10 * from table1
   where id not in(select top 开始的位置 id from table1)

max:
    sql code:

select top 10 * from table1
    where id>(select max(id)
    from (select top 开始位置 id from table1order by id)tt)

row:
sql code:

select *
from (
    select row_number()over(order by tempcolumn)temprownumber,*
    from (select top 开始位置+10 tempcolumn=0,* from table1)t
)tt
where temprownumber>开始位置
3种分页方式,分别是max方案,top方案,row方案

效率:
第1:row
第2:max
第3:top

缺点:
max:必须用户编写复杂sql,不支持非唯一列排序
top:必须用户编写复杂sql,不支持复合主键
row:不支持sqlserver2000

测试数据:
共320万条数据,每页显示10条数据,分别测试了2万页、15万页和32万页。

页码,top方案,max方案,row方案
2万,60ms,46ms,33ms
15万,453ms,343ms,310ms
32万,953ms,720ms,686ms

转载于:https://my.oschina.net/ankecheng/blog/64611

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值