用存儲過程生成批量數據

在進行查詢操做的性能測試時,每每須要測試大數據量模式下的查詢功能的性能,這是就須要咱們去創造一些測試數據來填充數據庫,來模擬真是環境,造數據的方式有不少種,能夠使用loadrunner,jmeter等壓測工具壓一些數據進去,可是這樣作的效率不高,下面記錄一個快速生成大量有規則數據的方法,那就是數據庫的存儲過程函數,經過運行函數快速的生成大量的數據。(使用這個方法的前提是你須要足夠了解你要操做的數據庫表的結構)mysql

一、oracle數據庫sql

複製代碼
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) 
    VALUES ('a94a341d2a3b4d25bd6212a1'||i, '370000-SDGT-XK-'||i||'-'||i, 1, '370000-SDGT-XK-'||i, '批量新增測試事項'||i, 'XK', '1');
END LOOP; COMMIT; --循環執行完後進行提交 END;

備註:i變量能夠經過「||」拼接到value中。
複製代碼

二、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`) 
11     VALUES (i, '王馨', j, 'e10adc3949ba59abbe56e057f20f883e', '');
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();  --調用進程
相關文章
相關標籤/搜索