首现创建一张表,然后插入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 和 > 号的区别 。 |
普通方式 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果的更多相关文章
-
存储过程 分页【NOT IN】和【>;】效率大PK 千万级别数据测试结果
use TTgoif exists (select * from sysobjects where name='Tonge')drop table Tongecreate table Tonge( I ...
-
atitit.提升软件开发效率大的总结O5
atitit.提升软件开发效率大的总结O5 #---平台化.组件化 1 #--cbb公用模块的建设 1 #---内部最佳流程方法跟实践的总结 2 #---内部知识体系的建设 2 #---问题Qa库的建 ...
-
抓取Js动态生成数据且以滚动页面方式分页的网页
代码也可以从我的开源项目HtmlExtractor中获取. 当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢? 如类似今日头条这样的网 ...
-
mysql数据库千万级别数据的查询优化和分页测试
原文地址:原创 mysql数据库千万级别数据的查询优化和分页测试作者:于堡舰 本文为本人最近利用几个小时才分析总结出的原创文章,希望大家转载,但是要注明出处 http://blog.sina.com. ...
-
数据在千万级别上进行全文检索有哪些技术?强大的大数据全文索引解决方案-ClouderaSearch
数据在千万级别上进行全文检索有哪些技术?强大的大数据全文索引解决方案-ClouderaSearch1.lucene (solr, elasticsearch 都是基于它) 2.sphinx3.elas ...
-
设计模式之行为类模式大PK
行为类模式大PK 行为类模式包括责任链模式.命令模式.解释器模式.迭代器模式.中介者模式.备忘录模式.观察者模式.状态模式.策略 ...
-
设计模式之创建类模式大PK
创建类模式大PK 创建类模式包括工厂方法模式.建造者模式.抽象工厂模式.单例模式和原型模式,他们能够提供对象的创建和管理职责.其 ...
-
第29章 跨战区大PK
29.1 策略模式 VS 桥梁模式 29.1.1 策略模式 [编程实验]用策略模式实现邮件发送 (1)有文本和超文本两种格式的邮件,将这两种格式封装成两种不同的发送策略. (2)文本邮件和超文本邮件分 ...
-
第28章 行为型模式大PK
27.1 策略模式 VS 命令模式 27.1.1 策略模式实现压缩算法 //行为型模式大PK——策略模式和命令模式 //实例:用策略模式实现压缩算法 #include <iostream> ...
随机推荐
-
Navigator
Navigator 这是一个简单的例子,用Navigator来跳转页面,页面之间传递参数 (代码是ES6语法写的): import React from 'react'; import { V ...
-
Banner 广告设计技巧及经验(转自UI中国)
经常听到banner这个词,但是banner是什么意思呢?引用百度知道的解释:banner可以作为网站页面的横幅广告,也可以作为游行活动时用的旗帜,还可以是报纸杂志上的大标题.Banner主要体现中心 ...
-
[RxJS] Combining streams in RxJS
Source: Link We will looking some opreators for combining stream in RxJS: merge combineLatest withLa ...
-
『TensorFlow』张量拼接_调整维度_切片
1.tf.concat tf.concat的作用主要是将向量按指定维连起来,其余维度不变:而1.0版本以后,函数的用法变成: t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, ...
-
温度转换-python
#接收一段字符串 TempStr = input("请输入带有符号的温度值:") #如果 TS 最后一位是大写或是小写 f if TempStr[-1] in ['F','f']: ...
-
解决使用window.history.back(),返回上一页后,页面不刷新问题
window.onpageshow = function(event) { if (event.persisted) { window.location.reload(); } }
-
l2-22(重排链表)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805057860517888 题意:给定链表L1->L2- ...
-
python 集合清空
setp = set(["Red", "Green"]) setq = setp.copy() print(setq) setp.clear() print(s ...
-
Ajax提交进度显示实例
概述:ajax提交比较大的文件的时候,我们希望能够看到它上传的进度,代码放下面了. <!DOCTYPE html> <html> <head> <meta c ...
-
HDU 6153 A Secret(扩展kmp)
A Secret Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 256000/256000 K (Java/Others)Total ...