begin declare counter int; declare i int; declare myuserid int; declare myorderid int; set counter=item; set myuserid = userid; set myorderid = orderid; while counter >=1 do INSERT INTO `ham`.`b_m_m` (`id`,`type_desc`) VALUES (myuserid, '金卡'); set counter =counter-1; set myuserid = myuserid+1; set myorderid = myorderid+1; set i=i+1; if i=1000 then set i=0; end if; end while; end
作性能測試,會要對測試環境的數據進行造數,保證數據庫表的數據量在必定的級別,這樣才能測試出數據庫的真實性能數據庫
若是要對一張表生成千萬級別的數據量,經過insert插入的方式就太慢了,就要使用到存儲過程性能
一,建立序列測試
CREATE SEQUENCE DB.WX_REDPOCKET_ADJUSTLIMITINF_NO AS BIGINT START WITH 1 CACHE 20 MAXVALUE 5000000 ORDER
二,寫存儲過程spa
CREATE PROCEDURE EA_ACCOUNT_INF_PRO (IN IN_NUM integer) -- 要插入的數據量 BEGIN DECLARE COUNT_1 integer; DECLARE LCD_PRDNO_FLOW VARCHAR(15);--流水號 SET COUNT_1=0; WHILE COUNT_1 < IN_NUM DO SELECT cast(nextval for WX_REDPOCKET_ADJUSTLIMITINF_NO as char(15)) INTO LCD_PRDNO_FLOW FROM sysibm.sysdummy1; insert into EA_ACCOUNT_INF (EAI_ACCOUNTID, EAI_IDENTIFYCUSTID, EAI_CHANNELID, EAI_BUSSITYPE, EAI_CURRTYPE, EAI_BALANCEDIR, EAI_BALANCE, EAI_USABLEBALANCE, EAI_WITHDRAWLIMIT, EAI_LINECREDIT, EAI_FROZENAMONT, EAI_ACCUMULATE, EAI_ACCOUNTSTATE, EAI_ACCOUNTATTRIBUTE, EAI_BRNO, EAI_ACCOUNTNAME, EAI_OPENTIME, EAI_CHANGETIME, EAI_CLOSEDTIME, EAI_CLOSEDREASON, EAI_PASSWORD, EAI_OPENBRNO, EAI_SUBJECTID, EAI_CARDNO, EAI_CARDNAME, EAI_MOBILENO, EAI_CUSTID, EAI_ISCHECKPHONENO, EAI_ISCHECKDK, EAI_FAILNUMS, EAI_LASTFAILTIME, EAI_ACCNO) values (LCD_PRDNO_FLOW, '211000000826', '101', '100', '156', '00', 283.73, 283.73, 0.00, 0.00, 0.00, null, '00', 'Y', null, null, null, null, null, null, 'FACA2E872169030C', null, null, '6222023602057198962', '李聶渝', '11111111111', '111000000001', '00', '00', 0, null, null); SET COUNT_1=COUNT_1+1; END WHILE; END
三,調用存儲過程code
call EA_ACCOUNT_INF_PRO(200000)
插入200000條數據blog