注册
DM 存储过程中不同循环语句对比测试。
技术分享/ 文章详情 /

DM 存储过程中不同循环语句对比测试。

阳春白雪 2022/05/08 3605 0 0

编写一个存储过程。实现向指定表中循环插入1000条数据,并统计时间。表结构参考T1(INT IDENTITY(1,1),DATE,CLOB) 。备注:可以使用客户端工具对此功能做时间对比测试。
create table T1(id INT IDENTITY(1,1),date DATE,miaoshu CLOB);

for语句:
create or replace procedure PROC_FOR as
t date:=sysdate;
begin
for I in 1…1000 LOOP
insert into T1(date,miaoshu) values(t,‘dameng’);
end loop;
end;
/
image.png

while语句
CREATE OR REPLACE PROCEDURE PROC_WHILE(I IN OUT INT) AS
t date:=sysdate;
BEGIN
WHILE I>0 LOOP
insert into T1(date,miaoshu) values(t,‘dameng’);
I:=I-1;
END LOOP;
END;
/
image.png

loop语句
CREATE OR REPLACE PROCEDURE PROC_LOOP(I IN OUT INT) AS
t date:=sysdate;
BEGIN
LOOP
IF I<=0 THEN
EXIT;
END IF;
insert into T1(date,miaoshu) values(t,‘dameng’);
I:=I-1;
END LOOP;
END;
/
image.png

repeat语句
CREATE OR REPLACE PROCEDURE PROC_REPEAT AS
t date:=sysdate;
I INT;
BEGIN
I := 1;
REPEAT
insert into T1(date,miaoshu) values(t,‘dameng’);
I := I+1;
UNTIL I>1000;
END;
/
image.png

forall语句
CREATE OR REPLACE PROCEDURE PROC_FORALL AS
t date:=sysdate;
BEGIN
FORALL I IN 1…1000
insert into T1(date,miaoshu) values(t,‘dameng’);
END;
/
image.png

从测试结果看,while和repeat循环插入1000行数据到表中用时最短。

社区地址:https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服