zoukankan      html  css  js  c++  java
  • 普通方式 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果

    首现创建一张表,然后插入1000+万条数据,接下来进行测试。
    use TT
    go
    if exists (select * from sysobjects where name='Tonge')
    drop table Tonge
    create table Tonge(
     ID int primary key identity(1,1),
     NAME varchar(100),
     PWD varchar(100),
     PHONE varchar(100),
     BORNDATE date default getDate()
    )
    go

    --存储过程插入10万条数据耗时:38s//平均  2600条/s
    declare @i int
    set @i=0
    while(@i<=100000) --插入测试数据10万条
     begin
      insert into Tonge values('Tonge'+Convert(varchar(2),@i),'Tonge594200'+Convert(varchar(2),@i),'16886888688',default)
      set @i = @i+1
     end 
    go
     
    --疯狂插入法插万条插入640万条数据耗时:101s //平均 63000条/s

    insert into Tonge(NAME,PWD,PHONE,BORNDATE)( select NAME,PWD,PHONE,BORNDATE from Tonge ) --疯狂插入法7次 10*2*2*2*2*2*2*2=1284万条数据

    go
     
    select MAX(ID) FROM Tonge
     
    --DBCC SHRINKFILE(TTDB_log,0) --清除事务日志
     
    --使用 Not In  分页
     declare @PageSize int,@PageIndex int,@TotalPage int
    select @PageSize=1000,@PageIndex=1000
     print '当前页数'+convert(varchar(5),@PageIndex)+' 总页数:' + Convert(varchar(5),@TotalPage)
    --等待6分钟未果、也就是3600s、CPU暴增...
    select top(@PageSize) * from Tonge
      where ID not in(select top(@PageSize*(@PageIndex-1)) ID from Tonge)
      order by ID
     
    --大于号分页测试
    declare @PageSize int,@PageIndex int,@TotalPage int
    select @PageSize=1000,@PageIndex=1000 --每页显示1万条数据,显示第10页
    --exec usp_Sign_PagedTonge @PageSize,@PageIndex,@TotalPage output
    print '当前页数'+convert(varchar(5),@PageIndex)+' 总页数:' + Convert(varchar(5),@TotalPage)
    --瞬间秒杀
    select top(@PageSize) * from Tonge where id >
    (select max(id) from
    (select top (@PageSize*(@PageIndex-1)) id from Tonge order by id) emp)

    测试结果:测试结果已经很明显了,那就是在普通分页中,对千万级别的数据进行分页(相同页码相同数据),大于号( > ) 甩Not In 几条街,另一篇我会介绍使用 存储过程分页 not in 和 > 号的区别 。
     
     
  • 相关阅读:
    Django-(二).模型层
    firewalld
    2.Python爬虫入门二之爬虫基础了解
    1.Python爬虫入门一之综述
    wxpython 安装教程
    使用Pycharm 安装三方库
    Selenium中的webdriver定位元素失败的常见原因
    Linux 配置selenium + webdriver 环境
    类属性、实例属性
    linux 安装mysql数据库
  • 原文地址:https://www.cnblogs.com/tonge/p/3396931.html
Copyright © 2011-2022 走看看