我需要将来自不同远程数据库的数据加载到我们自己的数据库中。我使用WITH语句编写一个“复杂”查询。它大约有1800万行数据。
进行插入的最有效方法是什么?
还是有其他方法吗?
答案 0 :(得分:4)
最快的方法是使用单个SQL语句。下一个最有效的方法是使用游标执行BULK COLLECT
操作来最小化SQL和PL / SQL引擎之间的上下文转换。效率最低的方法是使用游标并逐行处理数据。
答案 1 :(得分:1)
正如Justin所写,最有效的方法是使用单个SQL语句(插入... select ...)。此外,您还可以利用direct-path insert
答案 2 :(得分:0)
1800万行将需要针对您的单个插入stmt方案进行相当多的回滚。循环游标会慢很多,但你可以提交每x行。
就个人而言,我会去读书并转储到文件并通过sqlldr或数据泵加载,因为这是跨数据库的。
答案 3 :(得分:0)
您可以使用Data Synchronisation Studio并将select语句更改为每次100万(我认为18m可能会使您的计算机过载)