SQLSERVER分页查询关于使用Top方式和row_number()解析
网络编程 2021-07-05 13:43www.168986.cn编程入门
这篇文章主要介绍了SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同的相关资料,需要的朋友可以参考下
临近春节,心早已飞了不在工作上了,狼蚁网站SEO优化长沙网络推广给大家整理些数据库的几种分页查询。
Sql Sever 2005之前版本
select 页大小 from 表名 where id not in ( select 页大小(查询第几页-1) id from 表名 order by id ) order by id
例如
select 10 --10 为页大小 from [TCCLine].[dbo].[CLine_CommonImage] where id not in ( --40是这么计算出来的10(5-1) -- 页大小(查询第几页-1) select 40 id from [TCCLine].[dbo].[CLine_CommonImage] order by id ) order by id
结果为
Sql Sever 2005及以上版本,多了个分页查询方法
/ firstIndex:起始索引 pageSize:每页显示的数量 orderColumn:排序的字段名 SQL:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句 / select pageSize o. from (select row_number() over(order by orderColumn) as rownumber, from(SQL) as o where rownumber>firstIndex;
例如
select 10 numComImg. from ( select row_number() over(order by id asc) as rownumber, from (select FROM [TCCLine].[dbo].[CLine_CommonImage]) as Img) as numComImg where rownumber>40
结果
这两个方法,就仅仅是多了一列 rewnumber 吗?不是,来看下内部差别吧
在两个SQL上,分别加入以下SQL,并使用MS的“包括执行计划”,便于查看执行详情
SET STATISTICS TIME ON GO
要执行的SQL
SET STATISTICS TIME ON GO select 10 numComImg. from ( select row_number() over(order by id asc) as rownumber, from (select FROM [TCCLine].[dbo].[CLine_CommonImage]) as Img) as numComImg where rownumber>40 SET STATISTICS TIME ON GO select 10 --10 为页大小 from [TCCLine].[dbo].[CLine_CommonImage] where id not in ( --40是这么计算出来的10(5-1) -- 页大小(查询第几页-1) select 40 id from [TCCLine].[dbo].[CLine_CommonImage] order by id ) order by id
执行之后,查看执行计划
看得出,两个同样功能的SQL,执行时,使用 row_number() 的,要比是用 纯TOP方式的,查询开销少得多,上图显示 28:72,纯方式,使用了两次聚集扫描。
再来看下执行时间信息
row_number()方式的
纯方式
相比之下,还是row_number()解析函数效率比较高写。
以上所述是长沙网络推广给大家分享的SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同,希望对大家有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程