为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1
【操作系统】:windows 10
【CPU】:intel core i5-1135G7
【问题描述】*:函数操作临时表,重复执行函数,执行时间不是随执行次数倍数增长,而是近似于指数倍增。这个里面有啥玄机吗,是否可以通过配置解决
函数改一下就行了,把delete语句改成一个清除数据的函数,SYSDBA是模式名,换成临时表所在的模式名即可
CREATE OR REPLACE FUNCTION TEST() RETURN NUMBER AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
sp_tmp_table_clear('SYSDBA','TMP_GET_INTERESTRATE_EXT_SEG');
--DELETE FROM TMP_GET_INTERESTRATE_EXT_SEG;
COMMIT;
FOR I IN 1 .. 100 LOOP
INSERT INTO TMP_GET_INTERESTRATE_EXT_SEG
(beg_date, end_date, rate_value, flag)
VALUES
('2019-09-01', '2020-08-09', I, 0);
END LOOP;
sp_tmp_table_clear('SYSDBA','TMP_GET_INTERESTRATE_EXT_SEG');
-- DELETE FROM TMP_GET_INTERESTRATE_EXT_SEG;
COMMIT;
RETURN 1;
END;
ea798a3a006fdcdcbe29ee8d38ed1b58
以下为测试场景,实际业务并非如此,但效果一样
临时表:
函数:
执行语句:
循环10000


耗时1分25秒
循环50000
15分钟了还没执行完