我正在编写一个查询来计算一些值并定期将它们保存到表中。我需要的值是从函数调用返回的。
这些值需要保存到表中,我有一个 dbms 计划作业将这些值插入到表中。作业执行以下内容;
BEGIN
execute immediate 'truncate table tbl1';
INSERT /*+ append*/ INTO tbl1(v1, v2, v3, v4)
SELECT
function1(input),
function2(input),
function3(input),
SYSDATE
FROM tbl;
END;
计划的作业运行超过 8 小时,超过 500k 条记录!我知道函数中的逻辑很耗时,并且从函数中进行选择时需要上下文切换。我有没有其他方法可以做到这一点,并具有更好的性能?
我使用的是甲骨文 12c。对于如何使此作业运行得更快,有什么建议吗?
函数复杂吗?
如果不是,是否可以在每次插入 tbl 后调用该函数并将结果存储在新列中?因此,当调用作业时,函数 1、2 和 3 将替换为存储值的 colmuns。