码迷,mamicode.com
首页 > 数据库 > 详细

SQL SERVER 大数据的分页【测】

时间:2015-12-21 12:36:30      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

我用五百万的数据来测试,有兴趣的大家可以试试千万级的;

1、先添加大量数据

    SQL SERVER 百万级数据测试【测】

2、普通 分页

A、ROW_NUMBER()OVER

SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY T.UserID ) AS row ,
                    *
          FROM      Users AS T
        ) AS TT
WHERE   TT.row BETWEEN 999000 AND 1000000;

测:【百万级】第一页时间:126MS, 100W的时间 1073MS, 接近第一页10倍,500W的时间 58696MS 100W的55倍,第一页的466倍。

B、两次TOP分页 

SELECT TOP 1000 *
FROM    Users
WHERE   UserID NOT IN ( SELECT TOP ( 1000 * ( 5000 - 1 ) )
                                UserID
                        FROM    Users
                        ORDER BY UserID )
ORDER BY UserID; 

 测:【百万级】第一页时间:140MS, 100W的时间 1190MS,500W的时间 5526MS 100W的5倍,第一页的39倍。

 为什么我测试的获取(500W)时,TOP  TOP 要比ROW_NUMBER()效率更好一些呢? 

 最起码:100W以内的数据可以采用ROW_NUMBER()这样的分页,更优雅效率也稍微好一些,勉强可以接受的,数据再大些,如何优化代码也无济于事的,这牵扯的是数据库的计算能力,类似这两种的都PASS。

2、优化分页(第一次

 

SQL SERVER 大数据的分页【测】

标签:

原文地址:http://www.cnblogs.com/eyren/p/5062886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!