Oracle 中的性能从使用函数调用的选择插入到表中



我正在编写一个查询来计算一些值并定期将它们保存到表中。我需要的值是从函数调用返回的。

这些值需要保存到表中,我有一个 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。

相关内容

  • 没有找到相关文章

最新更新