利用存储过程生成大量的数据(oracle,mysql)

在进行查询操作的性能测试时,往往需要测试大数据量模式下的查询功能的性能,这是就需要我们去创造一些测试数据来填充数据库,来模拟真是环境,造数据的方式有很多种,可以使用loadrunner,jmeter等压测工具压一些数据进去,但是这样做的效率不高,下面记录一个快速生成大量有规则数据的方法,那就是数据库的存储过程函数,通过运行函数快速的生成大量的数据。(使用这个方法的前提是你需要足够了解你要操作的数据库表的结构)

1、oracle数据库

DECLARE  --声明函数
i INT;
BEGIN
i:=10;
WHILE(i<10000)
LOOP  --设置loop循环
    i:=i+1;
    INSERT INTO PROJECT_ITEM (ID, CODE, VERSION, FOLDER_CODE, NAME, TYPE, ASSORT, PROGRESS, REGION_CODE, REGION_NAME, ORG_CODE, ORG_NAME, AGENT_CODE, AGENT_NAME, OBJECT, CONDITIONS, SCOPE, KIND, LAW_TIME, AGREE_TIME, ACCEPT_TIME, SEND_TIME, TOTAL_SIZE, IS_RATE, IS_CHARGE, IS_ONLINE, IS_FRONT, IS_PUBLIC, IS_PROCEDURE, PROCEDURE_NAME, PROCEDURE_TIME, IS_CATALOG, PAY_ONLINE, CONSULT_ONLINE, COMPLAIN_PHONE, WINDOW_PROCESS, ONLINE_PROCESS, POWER_PROCESS, TITLE_NAME, FUND_ACCOUNT, RELIEF_WAY, SORT_ORDER, CREATOR, CREATE_TIME, LAST_EDITOR, LAST_TIME, REMARK, PROPERTY, STATE, STATUS, FORM_KEYS, PROCEDURE_CODE, KIND_NAME, IS_COMPLE_FLOW, OLDITEMID, SERVICE_OBJECT, SERVICE_OBJECT_TYPE, XK_ITEM_PROPERTY, IS_AGENCYORGAN, TITLE_CODE, MODLE_ID)
    VALUES (‘a94a341d2a3b4d25bd6212a1‘||i, ‘370000-SDGT-XK-‘||i||‘-‘||i, 1, ‘370000-SDGT-XK-‘||i, ‘批量新增测试事项‘||i, ‘XK‘, ‘1‘, null, ‘370000000000‘, ‘山东省‘, ‘SD370000GT‘, ‘山东省国土资源厅‘, ‘SD370000GT‘, ‘山东省国土资源厅‘, null, null, null, null, 40, 20, null, null, 0, ‘0‘, ‘0‘, ‘0‘, null, ‘0‘, ‘0‘, null, 0, ‘0‘, ‘0‘, ‘0‘, null, null, null, null, null, null, null, ‘00001‘, null, TIMESTAMP ‘2015-05-24 13:01:09‘, null, TIMESTAMP ‘2015-07-23 09:37:37‘, ‘无‘, ‘0‘, ‘5‘, ‘5‘, null, null, null, null, null, ‘1‘, null, 0, null, null, null);END LOOP;
COMMIT;   --循环执行完后进行提交
END;

备注:i变量可以通过“||”拼接到value中。

2、mysql数据库

 1 delimiter $$  --结束符为 $$
 2 DROP PROCEDURE IF EXISTS mytest; --判断进程是否存在,存在则删除
 3 CREATE PROCEDURE mytest()  --新建进程
 4 BEGIN
 5 declare i int;
 6 DECLARE j varchar(200);
 7 set i = 2;
 8 while i < 11 do  --循环体
 9 SET j=CONCAT(‘wwq‘,i);  --拼接字符串
10 INSERT INTO pub_user(`ID`, `NAME`, `ACCOUNT`, `PASSWORD`, `USER_CODE`, `GRADE`, `GENDER`, `BIRTHDAY`, `IDENTITY_NUM`, `PHONE`, `MOBILE`, `EMAIL`, `POSITION`, `TYPE_CODE`, `LAST_LOGIN_TIME`, `ROLE_CODE`, `REGION_CODE`, `REGION_NAME`, `ORG_CODE`, `ORG_NAME`, `ORG_SHORT_CODE`, `ROLE_VALUE`, `IS_ADMIN`, `STATUS`)
11 VALUES (i, ‘王馨‘, j, ‘e10adc3949ba59abbe56e057f20f883e‘, ‘‘, ‘0‘, ‘1‘, ‘2015-06-25‘, ‘‘, ‘‘, ‘31f6fb51a5a8a901c96ace‘, ‘aabb19d2e1ef19993095‘, ‘LD‘, ‘GWY‘, ‘2016-04-07 11:25:36‘, ‘95AC32C8B9874B4085A01187C341067B,AFB491C3A39C4FD4AA3008E32564A8D9,‘, ‘500000‘, ‘重庆市‘, ‘0410‘, ‘重庆市民防办‘, ‘‘, ‘ROLE_USER,ROLE_HALLORG,‘, ‘0‘, ‘1‘);
12 INSERT INTO pub_user_post (`POST_CODE`, `USER_CODE`)
13 VALUES (i, ‘A685187D29AF4AD793F2753DC17C1435‘);
14 INSERT INTO pub_user_role (`ROLE_CODE`, `USER_CODE`, `APP_CODE`)
15 VALUES (‘95AC32C8B9874B4085A01187C341067B‘, i, ‘INSPUR-DZZW-TYSP‘);
16 set i=i+1;
17 end while;
18 end $$  --结束定义语句
19 delimiter ;  --先把结束符恢复为 ;
20 call mytest();  --调用进程
时间: 2024-08-07 04:14:13

利用存储过程生成大量的数据(oracle,mysql)的相关文章

Mysql利用存储过程插入400W条数据

CREATE TABLE dept( /*部门表*/ deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, /*编号*/ dname VARCHAR(20) NOT NULL DEFAULT "",/*名称*/ loc VARCHAR(13) NOT NULL DEFAULT "" /*地点*/ )ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE emp( /*EMP雇员表*/ e

SQL Server 存储过程生成流水号

SQL Server利用存储过程生成流水号 USE BiddingConfig SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO -- ============================================= -- Author: 小爽 -- Create date: 2017-05-25 -- Description: 业务数据KEY生成 -- 构成规则: [区域编号][应用系统编号][版本编号][功能编号][日期戳][流水记录号]

定期从Oracle导数据至MySQL

因部分项目需求,需要将Oracle中单表的数据定期导入至MySQL,注意此处对数据的时效性要求不高.要求高可以利用goldengate 首先,需要将visit表中的vid,userid,goodid,time4个字段导出来 MYDB=visit   #MySQL数据库名 MYUSER=vis_my_user  #MySQL用户名 MYPASS=is_my_pass  #MySQL密码 ORA_NAME=visit       #Oracle实例名 ORA_USER=visuser    #Ora

Python+Mysql生成zabbix统计数据

先大概了解一下zabbix数据库结构: 1.groups表 可以根据组名查到组ID 2.找到组ID就可以根据组ID找出这个组下面的所有服务器的ID,这个关系在hosts_groups表里面: 3.有了hostid就可以在hosts表里查看这台机器的基本信息了: items表则可以根据hostid查出这台服务器的所有监控项: 4.终于在items表查到itemid,利用这个itemid在trends和trends_uint这两个表中统计出我们需要的数据 我python水平挺菜的,很多面向对象的功能

SQL Server 利用批量(batchsize)提交加快数据生成/导入

在最小化日志操作解析,应用的文章中有朋友反映生成测试数据较慢.在此跟大家分享一个简单的应用,在生成数据过程中采用批量提交的方式以加快数据导入. 此应用不光生成测试数据上,在BCP导入数据中,复制初始化快照过程中等都可以根据系统环境调整 batchSize 的大小来提高导入/初始化速度. 应用思想:这里简单介绍下组提交概念,由于关系型数据库依靠日志来保证数据完整性,即先写日志,每当一个事务完成时就需要commit日志刷入磁盘,在高并发短小事务的前提下由于日志频繁落盘导致整体写吞吐下降.用Group

mysql存储过程之游标遍历数据表

原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹. 1 BEGIN 2 DECLARE Done INT DEFAULT 0; 3 4 DECLARE CurrentLingQi INT; 5 6 DECLARE ShizuName VARCHAR(30); 7 /* 声明游标 */ 8 DECLARE rs CURSOR FOR SELECT

利用TOAD实现把EXCEL数据导入oracle数据库

利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然后Database->Import->Table Data打开了导入窗口,如下图   选择一个数据库表,点击Show Data按钮,可以显示表中的内容 其中schema 就是这张表的所属用户 Object type 就是 table Object name 就是表的名称 Commit mode 

使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]

使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非关系型数据库,所以干脆一起研究一下,对比学习中找不同,首先说一下本人使用的数据库版本和可视化工具Oracle10G—PL/SQL Developer9MySQL5.5.29—MySQL Workbench6.0MongoDB2.4.9(32bit最大2G)—Robomongo0.8.4为了保持数据的

Python+Mysql生成zabbix统计数据(优化)

周末重新整理了一下,把有些不合理的地方改了下,自我感觉好多了 ZabbixReport.py #!/usr/bin/python #coding:utf-8 import MySQLdb import time,datetime #zabbix数据库信息: zdbhost = '192.168.1.100' zdbuser = 'zabbix' zdbpass = 'zabbixreport' zdbport = 3306 zdbname = 'zabbix' #生成文件名称: xlsfilen