免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3771 | 回复: 5
打印 上一主题 下一主题

测试中如何给DB2生成大量数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-23 23:40 |只看该作者 |倒序浏览
请问有谁知道如何在DB2中自动生成大量数据?
我自己想到的方法是,因为我是在linux环境下,可以编写脚本,使用SQL语句,但是有点复杂,而且我希望生成5GB大小。
另外一种方法使用tool,如DB2 Test Database Generator或者EMS Data Generator for db2,但是第一个工具觉得有点复杂,需要一个source和target,第二个工具好像只能在windows下面使用。


希望各位大侠给点建议。谢谢!

论坛徽章:
5
荣誉会员
日期:2011-11-23 16:44:17CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-09-18 15:15:45未羊
日期:2014-02-25 14:37:19射手座
日期:2014-12-26 22:55:37
2 [报告]
发表于 2009-05-24 11:25 |只看该作者
自己用perl些个小脚本,生成DEL文件然后LOAD起步最方便。

论坛徽章:
0
3 [报告]
发表于 2009-05-24 23:01 |只看该作者
能否给一个脚本或者sample?

论坛徽章:
0
4 [报告]
发表于 2009-05-25 08:43 |只看该作者
基本的用递归查询可以实现。

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
5 [报告]
发表于 2009-05-25 14:15 |只看该作者
随便写点代码就行啦!
直接用sql或存储过程也行!用db2的递归吧!

论坛徽章:
0
6 [报告]
发表于 2009-05-29 09:11 |只看该作者
写一个过程吧,很容易的!我给你一个以前我写的例子(主体部分),你可以按照这种方式改写一个:
CREATE PROCEDURE load_data (IN p_size INT,
                            IN p_dsize INT,
                            IN p_date     VARCHAR(20),
                            IN p_optdate  CHAR(
)
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 @
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP