我正在编写一个查询来计算一些值并将它们定期保存到一个表中。我需要的值是从函数调用返回的。
这些值需要保存到表中,我有一个 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 小时,记录超过 50 万条!我了解函数中的逻辑非常耗时,并且在从函数中进行选择时会发生上下文切换。我还有其他方法可以实现这一目标,并具有更好的性能吗?
我在 Oracle 12c 上。关于如何使这项工作运行得更快有什么建议吗?