SqlServer2005高效分页sql查询语句
2012-07-02 15:55
337 查看
几种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
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
相关文章推荐
- SqlServer2005高效分页sql查询语句汇总
- SqlServer2005高效分页sql查询语句汇总
- SqlServer2005高效分页sql查询语句汇总
- SqlServer2005高效分页sql查询语句汇总
- 功能完整的分页程序 + 高效SQL查询语句
- SQL2005 高效分页sql查询语句经典实例
- sql查询分页语句
- SQL2005 高效分页sql语句
- SQL2000与SQL2005下高效分页语句
- 通过sql语句查询实现分页
- ORACLE分页查询SQL语法——高效的分页
- SQL SERVER 2000 高效分页查询语句
- SQL分页查询语句分析
- ORACLE分页查询SQL语法——最高效的分页
- mybatis的分页插件pagehelper-fix使用、数据库分页查询模板sql、总结mysql与oracle语句的区别
- 分页查询的SQL语句
- Entity Framework 使用sql语句分页(查询视图)
- ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
- ORACLE分页查询SQL语法——最高效的分页