利用存储过程生成大量的数据(oracle,mysql)
Posted 卡布奇诺茶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用存储过程生成大量的数据(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(); --调用进程
以上是关于利用存储过程生成大量的数据(oracle,mysql)的主要内容,如果未能解决你的问题,请参考以下文章