我们想加快下面的并行插入语句的运行.我们期望插入大约8000万条记录,大约需要2个小时才能完成.
INSERT /*+ PARALLEL(STAGING_EX,16) APPEND NOLOGGING */ INTO STAGING_EX (ID, TRAN_DT,
RECON_DT_START, RECON_DT_END, RECON_CONFIG_ID, RECON_PM_ID)
SELECT /*+PARALLEL(PM,16) */ SEQ_RESULT_ID.nextval, sysdate, sysdate, sysdate,
'8a038312403e859201405245eed00c42', T1.ID FROM PM T1 WHERE STATUS = 1 and not
exists(select 1 from RESULT where T1.ID = RECON_PM_ID and CREATE_DT >= sysdate - 60) and
UPLOAD_DT >= sysdate - 1 and (FUND_SRC_TYPE = :1)
Run Code Online (Sandbox Code Playgroud)
我们认为缓存not exists列的结果会加快插入速度.我们如何执行缓存?有什么想法加快插入速度?
请参阅以下有关企业管理器的计划统计信息.我们还注意到这些语句并不是并行运行的.这是正常的吗?

编辑:顺便说一下,序列已经缓存到1M
我有一个包含50M记录的表,我必须更新几乎所有记录.我想在表上使用并行更新.哪个会更快,有没有索引?