SqlServer两种分页以及效率对比

昨天不知道用了多长时间在WebApi.dbo.MyTest这个表里导入了500W条数据,今天分别用两种分页方式对其效率进行了测试,下面是第一种分页方式。
1.分页代码

DECLARE @PageNumber INT,@PageSize INT
SET @PageNumber=12600
SET @PageSize=100
SELECT * FROM
            (
            SELECT 
            ROW_NUMBER()OVER(ORDER BY Age)Indexs
            ,* 
            FROM WebApi.dbo.MyTest
            )Tab
WHERE Tab.Indexs BETWEEN ((@PageNumber-1)*@PageSize)+1 AND @PageNumber*@PageSize

1.耗时截图

这里写图片描述

2.分页代码

DBCC DROPCLEANBUFFERS--清除缓存
DECLARE @PageNumber INT,@PageSize INT
SET @PageNumber=12600
SET @PageSize=100
SELECT 
        ROW_NUMBER()OVER(ORDER BY Age)Indexs
        ,* 
FROM WebApi.dbo.MyTest
ORDER BY Age
OFFSET @PageNumber*@PageSize ROW
FETCH NEXT @PageSize ROW ONLY;

2.耗时截图
这里写图片描述
虽然SqlServer2012新出分页写着比较简洁,但是现在测试的分页效率却没有第一种分页方式高,感觉有点不科学,如果有误,欢迎各路大神拍砖!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值