IT资讯
当前位置:蛋蛋网 > IT资讯 >  探索

Sql Server 多种分页性能比较

2020-02-04 01:44:00 木庄网络博客 编辑:蛋蛋 浏览数:24蛋蛋网

本文摘自博客园,原文链接:https://www.cnblogs.com/xwc1996/p/9113049.html。 Sql Server多种分页性能的比较 一.前言 因为工作关系,遇到...

本文摘自博客园,原文链接:https://www.cnblogs.com/xwc1996/p/9113049.html。

Sql Server多种分页性能的比较

一.前言

因为工作关系,遇到了非常大的数据量的分页问题,数据总共有8000万吧,这个显然不是简单的分页能够解决的,需要从多多方面考虑,从分表、分库等等。

但是这个也让我考虑到了分页性能的问题,在不同数据量的情况下,不同的分页方法效率是否会有不同。

我在这里用比较常见的几种分页方法在不同的数据量、不同页码下进行对比,分别是:TopRow_Number()Offset Fetch

这里只用它们分别最简单的语句,如下。

Top

create proc Tops @pageindex int,@pagesize int
AS
BEGIN

select top (@pagesize) * from Customers where CustomerID not in 
(select top ((@pageindex - 1)* @pagesize) CustomerID from Customers order by CustomerID DESC) order by CustomerID DESC

END

Row_Number():

create proc RowNumber @pageindex int,@pagesize int
AS
BEGIN

select * from 
(select ROW_NUMBER() OVER(order by CustomerID desc) as px,* from Customers) as a
where a.px between ((@pageindex - 1)* @pagesize + 1) and (@pageindex*@pagesize)

END

Offset Fetch:

create proc Offset_Fetch @pageindex int,@pagesize int
AS
BEGIN

select * from Customers order by CustomerID desc
offset ((@pageindex - 1) * @pagesize) rows
fetch next @pagesize rows only  

END

三个存储过程都对数据进行了排序,设置的语句相对公平,这里默认每页10条数据。

Top的分页是基本上所有的版本的sql server都可以使用的,row_number()是sql 2005以上,offset fetch需要sql 2012才支持了。

二.20W数据量

1.Top

第1页十次执行平均时间29.1毫秒。

第1万页十次执行平均时间109.2毫秒。

第2万页十次执行平均时间126.8毫秒。

2.Row_Number()

第1页十次执行平均时间20.2毫秒。

第1万页十次执行平均时间96.5毫秒。

第2万页十次执行平均时间153.8毫秒。

3.Offset Fecth

第1页十次执行平均时间19.3毫秒。

第1万页十次执行平均时间70毫秒。

第2万页十次执行平均时间75.1毫秒。

三.200W数据量

1.Top

第1页十次执行平均时间55.9毫秒。

第10万页十次执行平均时间.....毫秒。

执行了好几十秒。。。。直接淘汰。

2.Row_Number()

第1页十次执行平均时间25.5毫秒

第10万页十次执行平均时间642.3毫秒

第20万页十次执行平均时间1257毫秒

3.Offset Fecth

分享到:

版权与免责声明:

凡未注明"稿件来源"的内容均为转载稿,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


本文地址:http://www.tomiran.com/news/2020/02/04/681299395.html

转载本站原创文章请注明来源:蛋蛋网

行业聚焦

QQ音乐发布2019年度听歌报告:看看哪些音乐/歌手独得你“恩宠”

IT之家12月30日消息 继上午网易云音乐上线2019音乐总结功能后,QQ音乐也紧随其后上线年度总结功能。IT之家编辑实测用户可通过微信扫码的方式查看自己201...[详细]

机械革命推出钛钽笔记本:17.3英寸240Hz,A面无logo设计

IT之家12月19日消息 近日,机械革命推出了新款的机械革命钛钽笔记本,17.3英寸大屏,240Hz刷新率,i7+RTX 2060版本售价13999元。配置方面...[详细]

三个“没有”,微软Windows 7全屏警告中文弹窗开始大规模上线

IT之家1月15日消息 2020年1月14日,Windows 7系统生命周期终止,操作系统将不再收到任何其他安全补丁。Windows 7 KB4534310显然...[详细]

苹果iPad发布十周年:销量超3.5亿部,未来会向笔记本转型吗?

十年前的今天,也就是2010年1月28日(美国当地时间1月27日),史蒂夫·乔布斯(Steve Jobs)向全世界发布了平板电脑:iPad。乔布斯发布iPad按...[详细]

谷歌发布2020年I/O开发者大会时刻5月12日老地方见

.tech-quotation{padding:20px 20px 0px;background:url(//n.sinaimg.cn/tech/content...[详细]

活动互动

更多

继微软后 美光科技也宣布获得向华为合作许可证

 

DoNews 12月23日消息(记者 赵晋杰)据路透社消息,美国芯片制造商美光科技12月18日表示,其已收到对华为继续供...[详细]

OPPO ColorOS系统8套免费全局主题上线:王者荣耀 铠...

 

OPPO ColorOS系统官方宣布,大家期待已久的全局主题已经上线啦!全局主题覆盖的手机使用场景较多,包括了锁屏、壁纸...[详细]

戴上飞利浦降噪耳机,随途牛一起春节出游

 

吉时团圆、快乐”静“行。1月10日,人类一年一度最大的迁徙活动——春运将正式开始。随着观念改变,春节期间,越来越多的人不...[详细]

为什么用了索引之后查询就会变快?

 

都知道索引有助于快速检索,但为什么用了索引之后,查询就会变快?最常见的索引是 B+ Tree 索引,索引可以加快数据库的...[详细]

“基因编辑婴儿”案一审宣判,贺建奎被判三年有期徒刑

 

IT之家12月30日消息 据央视新闻报道,“基因编辑婴儿”案30日在深圳市南山区人民法院一审公开宣判。贺建奎、张仁礼、覃...[详细]

一周排行每月关注
安徽11选5 传奇私服 广西快3 安徽11选5