您的位置:首页 > 数据库

SqlServer两种分页以及效率对比

2016-04-20 10:01 393 查看
昨天不知道用了多长时间在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新出分页写着比较简洁,但是现在测试的分页效率却没有第一种分页方式高,感觉有点不科学,如果有误,欢迎各路大神拍砖!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: