我正在编写一个查询以计算一些值并将它们定期保存到表中。我需要的值是从函数调用中返回的。
这些值需要保存到表上,并且我有一个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。关于如何使这项工作更快地运行有什么建议吗?
答案 0 :(得分:0)
功能复杂吗?
如果没有,在每次将它们插入tbl并将结果存储在新列中之后是否不能调用该函数?因此,在调用作业时,函数1、2和3被存储值的colmuns代替。