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.耗时截图

SqlServer两种分页以及效率对比_第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.耗时截图
SqlServer两种分页以及效率对比_第2张图片
虽然SqlServer2012新出分页写着比较简洁,但是现在测试的分页效率却没有第一种分页方式高,感觉有点不科学,如果有误,欢迎各路大神拍砖!

你可能感兴趣的:(SqlServer技术类)