Servidor SQL, Oracle insere milhões de ciclos de dados

O teste de estresse geralmente precisa inserir uma grande quantidade de dados no banco de dados. Abaixo está o script que usei para inserir dados nos dois bancos de dados

Servidor SQL

declare @maxSum int,
        @lid nvarchar(64), -- 'lid'为表id
        @cid int,
        @userid nvarchar(64),
        @oper_time nvarchar(26),
        @oper_type nvarchar(10),
		@oper_host nvarchar(64),
		@permission nvarchar(100),
		@status nvarchar(10),
		@detalls nvarchar(max),
		@version int
set @maxSum=1
set @cid='1'
set @userid='1'
set @oper_time='2020-10-26 12:15:07.000761'
set @oper_type='7'
set @oper_host='127.0.0.1'
set @permission='system'
set @status='0'
set @detalls='{"msg":"Login for User:admin.","logBeans":null}'
set @version='0'
begin tran
while @maxSum<200000
begin
set @lid='LID'+convert(nvarchar,@maxSum) -- id加'LID'前缀方便识别
   insert into T_AT_LOG (LID,CID,USERID,OPER_TIME,OPER_TYPE,OPER_HOST,PERMISSION,STATUS,DETAILS,VERSION) 
                 values(@lid,@cid,@userid,@oper_time,@oper_type,@oper_host,@permission,@status,@detalls,@version)
   set @maxSum=@maxSum+1

end
commit

Os dados precisam ser confirmados em lotes. Aqui estou 200.000 transações por vez. O banco de dados não pode suportar vários milhões de confirmações por vez.
Um único golpe leva 28 segundos
Insira a descrição da imagem aqui

A eficiência deste script não é muito satisfatória. Se houver um script mais eficiente, compartilhe na área de comentários

Oráculo

DECLARE
   a number(30) := 0;
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;

Aqui está uma confirmação de lote
33 segundos para um único golpe
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43840809/article/details/109352911
Recomendado
Clasificación