昨天不知道用了多长时间在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新出分页写着比较简洁,但是现在测试的分页效率却没有第一种分页方式高,感觉有点不科学,如果有误,欢迎各路大神拍砖!