在進行查詢操作的性能測試時,往往需要測試大數據量模式下的查詢功能的性能,這是就需要我們去創造一些測試數據來填充數據庫,來模擬真是環境,造數據的方式有很多種,可以使用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) VALUES ('a94a341d2a3b4d25bd6212a1'||i, '370000-SDGT-XK-'||i||'-'||i, 1, '370000-SDGT-XK-'||i, '批量新增測試事項'||i, 'XK', '1');
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`) 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(); --調用進程
