转自http://blog.csdn.net/welken/article/details/4971887   做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条SQL快速生成大量的测试数据的方法. 产生测试数据的SQL如下: SQL> select rownum as id,  2                 to_char(sysdate + rownum / 24 / 3600, 'yyyy-…
最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的: 1.    如何生成8位随机数,生成的数越随机,重复的可能性当然越小 2.    控制不重复 3.    考虑性能 针对这个问题,我写了如下的示例来解决,希望能为有这类需求的人提供指导 */ USE tempdb GO --创建测试表 CREATE TABLE tb(id char(8)) --创建用于自动过滤重复值的唯一索引 CREATE UNIQUE INDEX IX_tb ON tb(id) W…
项目背景 数据来源:所有数据均为外部导入,最大数据量在10w+ 输出数据:导出经过业务处理之后的数据 使用框架:fastadmin 涉及的问题: 1.数据读取 2.数据保存 使用数据:10w+ 解决方案: 方案一:直接利用框架提供的功能导入Excel数据 结果:一分钟之后超时,最终执行完成时间在3分钟左右 分析:其中数据读取和数据保存(使用模型批量保存拆分为100,1000,10000)都十分耗时,而且在超时之后,系统其它功能无法响应. 可行性:不可行 方案二:将Excel数据换成csv格式 结…
实践内容 从 MariaDB 一张表内读 10 万条记录,经处理后写到 MongoDB . 具体实现 1.新建 Spring Boot 应用,依赖如下: <!-- Web 应用 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> &…
原文:用一条SQL语句取出第 m 条到第 n 条记录的方法   --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)       *    FROM Table     id FROM Table ))        --从TABLE表中取出第m到n条记录 (Exists版本)       * FROM TABLE AS a WHERE Not Exists   ( * From TABLE order by id) b Where b.id=a.id )    Ord…
1.创建数据库Person CREATE TABLE Person( id number, name nvarchar2() , age number , sex nvarchar2() , password nvarchar2() ) 2.在数据库建立一个type,对应JAVA端要传入的对象结构: CREATE OR REPLACE TYPE BUT_UKBNOV_CTC_ORDER_REC1 AS OBJECT ( id number, name nvarchar2(200) , age n…
<一出好戏>讲述人性,使用Python抓取猫眼近10万条评论并分析,一起揭秘“这出好戏”到底如何? 黄渤首次导演的电影<一出好戏>自8月10日在全国上映,至今已有10天,其主演阵容强大,相信许多观众也都是冲着明星们去的.目前<一出好戏>在猫眼上已经获得近60万个评价,评分为8.2分,票房已破10亿. 我们将使用Python抓取猫眼近10万条评论数据,并对获取到的数据进行分析,看看观众对这部电影的评价究竟如何? 整个数据分析的过程分为四步: 获取数据 处理数据 存储数据…
10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程) 有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc4+Dapper+Dapper扩展+Sqlserver 目前主要实现了两种分页:一种采用 PagedList.Mvc 实现的分页 两外一种采用 ajax异步加载分页 采用比较常用的jquery.pagination 分页插件. 功能相对比较简单仅供学习交流. 通用存储过程 1 USE [MvcPro…
在B/S架构的系统测试中,有时需要通过导入excel文件来生成一些数据记录,当数据量小的时候,一般不会出现什么问题,而当导入的数据量巨大时,对系统的性能就是一个考验了.为了验证系统的性能,有时需要导入海量的数据,如30万条数据记录,而手头并没有这么多数据时该怎么办呢?一条一条复制粘贴,或者通过excel的下拉拖动来生成记录?这样会把测试人员累死,而且单调重复的工作,非常无趣.这时,我们只需借助python,便可以轻松生成大量数据,把人从单调重复的工作中解放出来,去做更有意义的事. 例如,我们需要…
mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${db_name}/ 下,并确保导入用户拥有这个txt文件的权限,否则会报Error 13错误 1.${table_name}换myisam,我们的场景对事务没啥要求,innodb引擎速度太慢了,原来导入12个小时都没导完2.导入前修改参数和禁止索引更新mysql> SET SESSION BULK_I…
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python中的lambda的"一个语法,三个特性,四个用法,一个争论".欢迎阅读和沟通(个人微信: slxiaozju). 由于文章是从我的公众号上复制过来的,因此排版不整齐,但是内容绝对充实,欢迎关注公众号阅读原文 一个语法 在Python中,lambda的语法是唯一的.其形式如下:  lambd…
1.获取动态SQL中的列名及类型 DECLARE l_curid INTEGER; l_cnt NUMBER; l_desctab dbms_sql.desc_tab; l_sqltext ); BEGIN l_sqltext := 'select * from dba_objects where rownum<= 10'; --可以是任意有效的查询sql文本 l_curid := dbms_sql.open_cursor(); dbms_sql.parse(l_curid, l_sqltext…
列表大概有2万条数据,又不让做成分页,如果页面直接渲染2万条数据,在一些低配电脑上可能会照成页面卡死,基于这个需求,我们来手写一个虚拟列表 思路 列表中固定只显示少量的数据,比如60条 在列表滚动的时候不断的去插入删除dom startIndex.endIndex,不断的改变这个值来获取最新的显示列表 paddingTop.paddingBottom撑开容器的滚动区域 首先看一下当直接插入2万条列表时,页面的性能 可以看到火焰图中已经有了红色的部分了,dom渲染也耗时也有1s多 再来看一下当使用…
用Oracle的编码转换的函数Convert实现,测试后可行. SQL> select *  2    from (select 'abcd' c1 from dual  3          union all  4          select 'ab测试cd' c1 from dual)  5   where c1 <> CONVERT(c1, 'US7ASCII', 'ZHS16GBK'); C1--------ab测试cd CONVERT函数说明: CONVERT(input…
oracle的用P/SQL客户端中,如何停止正在执行的SQL语句? 我们使用oracle语句查询某个表时,如果查询的表数据太多,如何停止正在执行操作 如查询的表数据超过上万条时,如何停止查询操作…
准备阶段 1.建表语句: create table table1( idd varchar2(10) , val varchar2(20) ); create table table2( idd varchar2(10), val varchar2(20) ); 2.插入数据: insert into table1 values ('01','1111'); insert into table1 values ('02','222'); insert into table1 values ('0…
declare g_commit_count number; cursor cu1 is select gl_flexfields_pkg.get_description_sql(gcc.chart_of_accounts_id, 1, --1 gcc.segment1) company_name, p_com_code company_code, gl.name, gl.description sob_desc, ps.period_year, ps.period_name, to_char(…
String sql = "insert into table *****"; //必须要有这句,要不然效果不明显 con.setAutoCommit(false); ps = con.prepareStatement(sql); for(int i=1; i<102030; i++){ ps.addBatch(); // 1w条记录插入一次 if (i % 10000 == 0){ ps.executeBatch(); con.commit(); } } // 最后插入不足1w…
因为id可能不是连续的,所以不能用取得10<id<20的记录的方法. 有三种方法可以实现:一.搜索前20条记录,指定不包括前10条语句:select top 20 * from tbl where id not in (select top 10 id from tbl)二.搜索记录生成临时表,建立临时表的自增id.通过取得自增id的10<id<20的记录的方法取得所需数据语句:select identity(int,1,1) as id,* into #temp from tbl…
因为id可能不是连续的,所以不能用取得10<id<20的记录的方法. 有三种方法可以实现: 一.搜索前20条记录,指定不包括前10条 语句: select top 20 * from tbl where id not in (select top 10 id from tbl) 二.搜索记录生成临时表,建立临时表的自增id.通过取得自增id的10<id<20的记录的方法取得所需数据 语句: select identity(int,1,1) as id,* into #temp fr…
SET NOCOUNT ON IF (OBJECT_ID('TB' ) IS NOT NULL ) DROP TABLE TB GO CREATE TABLE TB(ID INT IDENTITY (,),NAME VARCHAR()) GO INSERT INTO TB(NAME) SELECT ),isnull(@@IDENTITY,)+) GO --GO 后面为执行的次数 SET NOCOUNT OFF SELECT * FROM TB…
insert into blog (bid, aid) values (2,1)(2,2)(2,3)…
1.使用dual配合connect by level create table BigTable as select rownum as id from dual connect by level <= 100000; 但是有connect by level有上限,如果超出上限,系统会报,"connect by level"内存不足,我试过1000000万数据可以,但是再多就不行了. 2. 使用xmltable,"CONNECT BY 操作内存不足,10g开始支持XML…
先插入一条数据 insert into table(a,b,c,d) values(1,2,3,4) 然后重复执行以下sql语句 没执行一次 数据就会倍增 insert into table(a,b,c,d) (select a,b,c,d from table)注意:上句中为避免可能有自增主键的存在而没有使用(*),还有使用时注意唯一性约束导致报错.…
有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc4+Dapper+Dapper扩展+Sqlserver 目前主要实现了两种分页:一种采用 PagedList.Mvc 实现的分页 两外一种采用 ajax异步加载分页 采用比较常用的jquery.pagination 分页插件. 功能相对比较简单仅供学习交流. 通用存储过程 USE [MvcProcPageDB] GO /****** Object: StoredPr…
创建一个存储过程 DELIMITER $$ -- 设置定界符为$$,与';'意思相同,防止相同符号产生冲突 USE `yunkc_base1`$$ -- 使用数据库 DROP PROCEDURE IF EXISTS `insert_test`$$ -- 如果存在insert_test存储过程名字,则删除 CREATE DEFINER=`ykcbase`@`%` PROCEDURE `insert_test`() -- 设置存储过程的权限 BEGIN -- 开始 DECLARE i INT; --…
1.先要引用dll文件,可以直接使用vs自带的包管理,如下图: 输入 EPPlus 我这里是安装过了的所以这里显示的是卸载而不是安装. 安装成功了之后会看到这个dll文件 代码如下: //导出Excel protected void BtnMemExcel_Click(object sender, EventArgs e) { Mem bllMember = new Mem(); int Counts = NetPagerParameter.RecordCount; string strSql…
用途说明: 公司要求做一个数据导入程序,要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储.于是在网上进行查找,发现了一个比较好的解决方案,就是采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,就像这个方法的名字一样,可以将内存中的数据表直接的一次性的存储到数据库中,而不需要一次一次的向数据库Insert数据.初次实验,百万级别的数据表,也只需几秒时间内就可以完全的存入数据库中,其速度,比传统的Insert方法不止…
))default charset =utf8; #定义一个随机切割字符串的函数 delimiter // create function randStr() ) begin ) default 'ASDFGHJKLZXCVBNMQWERTYUIOP'; ))); end // delimiter ; #查看自定义函数的返回值 select randStr(); #定义一个随机字符串的函数,int varchar int+varchar类型# randStr(3,1) --> 返回 3 个 长度…
=CONCATENATE("insert into table_name(id, code, name, remark) values (uuid(),'",B2,"','",C2,"','",D2,"','",E2,"');")…