壓測時常需要往資料庫插入大量資料,下面是我往兩個資料庫插入資料時用的腳本
SQL server
declare @maxSum int,
@lid nvarchar(64); -- 'lid'為表id
set @maxSum=1;
begin tran
while @maxSum<200000
begin
set @lid='LID'+convert(nvarchar,@maxSum) -- id加'LID'前綴方便識別
insert into T_AT_LOG values(@lid,'1','1','2020-10-26 12:15:07.000761','7','127.0.0.1','system','0','{"msg":"Login for User:admin.","logBeans":null}','0');
set @maxSum=@maxSum+1
end
commit
資料要分批Commit,這里我是單次20萬筆,資料庫是無法支撐單次幾百萬筆Commit的,可能會導致鎖表
單筆耗時21秒

Oracle
DECLARE
i number;
BEGIN
for i in 1 .. 200000 loop
INSERT INTO T_AT_LOG(LID,CID,USERID,OPER_TIME,OPER_TYPE,OPER_HOST,PERMISSION,STATUS,DETAILS,VERSION)
VALUES(i,'1','1','2020-10-13 10:25:38.000176','8','127.0.0.1','system','0','{"msg":"Login for User:admin.","logBeans":null}','0');
end loop;
commit;
END;
這里一樣是分批Commit
單筆耗時33秒

腳本效率不是很滿意,有更高效率的腳本歡迎在評論區分享
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197016.html
標籤:java
上一篇:七人表決器VHDL語言
