空コミットの影響

(8.0.22)

CPUコア数=2

drop table tab1;
create table tab1 ( col1 int);

alter table tab1 add constraint tab1pk primary key(col1);


drop procedure proc1;

delimiter //
create procedure proc1(in x int)
begin
declare i int;
set i = 0;
start transaction;
while i < x do
set i = i + 1;
insert into tab1 values(i);
end while;
commit;
end
//
delimiter ;


call proc1(1000000);


drop procedure proc2;

delimiter //
create procedure proc2()
begin
while true do
start transaction;
commit;
end while;
end
//
delimiter ;

call proc2();

確認結果:
空コミットなし→ 24.65 sec
空コミットあり→ 24.65 sec

影響なし

(19c)
https://kagamihoge.hatenablog.com/entry/2014/03/09/195716

CPUコア数=2

drop table tab1 purge;
create table tab1 ( col1 int);

create index ind1 on tab1(col1);
alter table tab1 add constraint tab1pk primary key(col1) using index ind1;

set time on
set timing on

declare
begin
for i in 1..1000000 loop
insert into tab1 values(i);
end loop;
commit;
end;
/


declare
begin
while true loop
commit;
end loop;
end;
/

確認結果:
空コミットなし→ 経過: 00:00:20.46
空コミットあり→ 経過: 00:00:22.31

影響ほぼなし

 

(13)

CPUコア数=2

drop table tab1;
create table tab1 ( col1 int);

alter table tab1 add constraint tab1pk primary key(col1);

\timing 1


do $$
declare
begin
for i in 1..1000000 loop
insert into tab1 values(i);
end loop;
end
$$
;


create or replace procedure proc1()
language plpgsql
as $$
begin
while true loop
commit;
end loop;
return;
end;
$$
;

call proc1();


確認結果:
空コミットなし→ 時間: 4499.790 ミリ秒
空コミットあり→ 時間: 4421.127 ミリ秒

影響なし

 

(2019)

CPUコア数=2

drop table tab1;
create table tab1 ( col1 int not null);

alter table tab1 add constraint tab1pk primary key(col1);

 

create or alter procedure proc1
as
begin
set nocount on
declare @i integer;
set @i = 1;
begin transaction;
while @i <= 100000
begin
insert into tab1 values(@i);
set @i = @i + 1;
end
commit;
end

declare @time datetime2 = sysdatetime()
exec dbo.proc1;
select datediff(millisecond, @time, sysdatetime()) as ms


set nocount on
while 1=1
begin
begin transaction;
commit;
end

 

確認結果:
空コミットなし→ 24094 ms
空コミットあり→ 41985 ms

影響あり