从DBLink插入的最佳方式 - Oracle

时间:2015-10-30 10:00:31

标签: oracle optimization query-optimization database-link

我需要通过Dblink将1000万条记录插入我的数据库。

执行正常的insert语句 插入 select * from会是正确的还是最佳的方式?

有哪些其他选项可以插入此卷的数据?

我正在使用Oracle 11g。

2 个答案:

答案 0 :(得分:0)

对于1000万条记录我们可以使用EXPDP / IMPDP也要小心我们不能跨dblinks复制分区表的数据(我们需要在本地创建临时非分区表加载数据,然后通过数据库链接复制)

谢谢, 格利扬

答案 1 :(得分:0)

要找到最佳方式(使用DBLINK),您必须定义优化标准......

简单第一估算插入所需的时间。使用10.000行测试并将时间乘以1.000 - 您将得到整个语句持续时间的近似值。如果时间可以接受,那么你就完成了。

如果没有,请计算达到的传输速率MB /秒,并将其与网络吞吐量进行比较。你会看到是否有可能改善。

下一个选项是直接路径插入 - 使用APPEND提示(在目标端)并从远程端通过链接选择。

如果这种压力不够(并且你仍然有理论上的改进),那么最后的选择就是并行插入。不幸的是,这不可能通过PARALLEL提示进行,你必须在N个临时表或临时表的N个分区上打开N个插入。

你看到获得速度需要付出一些努力,所以你必须找到自己的最佳状态......

我没有详细说明每个选项都很容易找到其他信息。