思路:先按1000天 每天一条数据库生成,写进一个临时表,然后写个存储过程从临时表取数写进目标表,可以通过jmeter多线程执行存储过程
步骤一(先按1000天 每天一条数据库生成):先在数据库执行存储过程:call SYSDBA.SP_INSERT_DATA_PRODUCTS_TEST109();

步骤二:用jmeter开多线程调存储过程
配置jmeter线程:

配置数据库连接:

jmeter调存储过程:

执行结果:3000W数据2.1分钟执行完,平均每秒238095;

SQL:
create or replace procedure SYSDBA.SP_INSERT_DATA_PRODUCTS_TEST109 IS
begin
for i in 1..1000 loop
INSERT INTO SYSDBA.PRODUCTS_TEST109
VALUES ( sys_uuid AS product_no --引用自增序列
, DBMS_RANDOM.STRING('x', 8) AS product_name , CASE when i<200 --随机选取5个枚举值
then '零食大礼包A'
when i<400 then '零食大礼包B'
when i<600 then '零食大礼包C'
when i<800 then '零食大礼包D'
when i<1000 then '零食大礼包E'
ELSE '零食大礼包E'
END AS PRODUCT_INTRODUCE
, to_date('2017-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')+i AS MANUFACTURE_DATE
, sysdate AS SELL_DATES
, CASE when i<200 --随机选取5个枚举值
then '北京'
when i<400 then '上海'
when i<600 then '深圳'
when i<800 then '广州'
when i<1000 then '成都'
ELSE '武汉'
END as address
, CASE when i<200 --随机选取5个枚举值
then '食品'
when i<400 then '饰品'
when i<600 then '汽车'
when i<800 then '五金'
when i<1000 then '军工'
ELSE '海鲜'
END PRODUCT_TYPE);
end loop;
commit;
end SP_insert_DATA_PRODUCTS_TEST109;
--用jmeter开100个线程即可
create or replace procedure SYSDBA.SP_INSERT_DATA_PRODUCTS_TEST1091 IS
BEGIN
FOR X IN 1..300
LOOP
INSERT INTO SYSDBA.PRODUCTS_TEST1091
SELECT sys_uuid as PRODUCT_NO,PRODUCT_NAME,PRODUCT_INTRODUCE,MANUFACTURE_DATE,sysdate as SELL_DATES,ADDRESS,PRODUCT_TYPE
FROM
SYSDBA.PRODUCTS_TEST109 s;
commit;
END LOOP;
END SP_insert_DATA_PRODUCTS_TEST1091;




