测试中如何给DB2生成大量数据
请问有谁知道如何在DB2中自动生成大量数据?我自己想到的方法是,因为我是在linux环境下,可以编写脚本,使用SQL语句,但是有点复杂,而且我希望生成5GB大小。
另外一种方法使用tool,如DB2 Test Database Generator或者EMS Data Generator for db2,但是第一个工具觉得有点复杂,需要一个source和target,第二个工具好像只能在windows下面使用。
希望各位大侠给点建议。谢谢! 自己用perl些个小脚本,生成DEL文件然后LOAD起步最方便。 能否给一个脚本或者sample? 基本的用递归查询可以实现。 随便写点代码就行啦!
直接用sql或存储过程也行!用db2的递归吧! 写一个过程吧,很容易的!我给你一个以前我写的例子(主体部分),你可以按照这种方式改写一个:
CREATE PROCEDURE load_data (IN p_size INT,
IN p_dsize INT,
IN p_date VARCHAR(20),
IN p_optdateCHAR(8)
)
LANGUAGE SQL
BEGIN
DECLARE pk2 CHAR(20);
DECLARE i int;
DECLARE j int;
DECLARE p_id int;
SET i = 0 ;
SET j = 0 ;
WHILE i < p_size DO
SET pk2 = CONCAT('A',CHAR(i));
INSERT INTO test_ordermaster_his
(djbm,
operatedate, status, customerid, departid,
salerid, paymode, sumrequantity, sumquantity,
sumamountincludetax, sumassessprofit,
sumretailamounttax, isordersucceed, ispaysucceed,
indate,updatedate
)
VALUES (pk2,
p_optdate, 1, 1001, 1001,
1001, 1001, 1000, 200,
400, 300,
100, '1', '2',
DATE(p_date),current date
);
WHILE j < p_dsize DO
set p_id = FLOOR(RAND()*100) ;
INSERT INTO test_orderdetail_his
(djbm,
productid, reqquantity, quantity, amount,
assessprofit, retailamounttax, price, producttype,
indate
)
VALUES (pk2,
p_id, 100, 100, 200,
100, 200, 100, 200,
DATE(p_date)
);
SET j = j + 1 ;
END WHILE;
SET j = 0 ;
SET i = i + 1 ;
END WHILE;
commit;
END @
页:
[1]