我正在逐个浏览列表,并根据一长串条件将该列表中的数据合并到另一个表中。
合并在不匹配时执行插入,匹配时更新。我发现这个合并需要花费很多时间。
我需要10秒才能完成200条记录的列表。有没有办法让这个合并更快?谢谢
stmt := 'MERGE INTO dash_'||domain_name||'_rag TARGETd USING (SELECT '||''''||ms||''''||' AS JNDI, '||''''||domain_name||''''||' AS DOMAIN, ''Y'' AS TARGET, '||''''||jndi_type||''''||' AS JNDI_TYPE, '||''''||jndi_s||''''||' AS MS2_D1, '||''''||RAGr||''''||' AS MS2_D1R, '||'SYSDATE AS TS FROM DUAL) SOURCE ON (SOURCE.JNDI=TARGETd.JNDI) WHEN NOT MATCHED THEN INSERT (JNDI, DOMAIN, TARGET, JNDI_TYPE,MS2_D1, MS2_D1R, TS) VALUES(SOURCE.JNDI, SOURCE.DOMAIN, SOURCE.TARGET, SOURCE.JNDI_TYPE,SOURCE.MS2_D1, SOURCE.MS2_D1R, SOURCE.TS)WHEN MATCHED THEN UPDATE SET TARGETd.TARGET = SOURCE.TARGET, TARGETd.MS2_D1=SOURCE.MS2_D1, TARGETd.MS2_D1R=SOURCE.MS2_D1R, TARGETd.TS=SOURCE.TS';
execute immediate stmt;