我需要通过Dblink将1000万条记录插入我的数据库。
执行正常的insert语句 插入 select * from会是正确的还是最佳的方式?
有哪些其他选项可以插入此卷的数据?
我正在使用Oracle 11g。
答案 0 :(得分:0)
对于1000万条记录我们可以使用EXPDP / IMPDP也要小心我们不能跨dblinks复制分区表的数据(我们需要在本地创建临时非分区表加载数据,然后通过数据库链接复制)
谢谢, 格利扬
答案 1 :(得分:0)
要找到最佳方式(使用DBLINK),您必须定义优化标准......
简单第一估算插入所需的时间。使用10.000行测试并将时间乘以1.000 - 您将得到整个语句持续时间的近似值。如果时间可以接受,那么你就完成了。
如果没有,请计算达到的传输速率MB /秒,并将其与网络吞吐量进行比较。你会看到是否有可能改善。
下一个选项是直接路径插入 - 使用APPEND提示(在目标端)并从远程端通过链接选择。
如果这种压力不够(并且你仍然有理论上的改进),那么最后的选择就是并行插入。不幸的是,这不可能通过PARALLEL提示进行,你必须在N个临时表或临时表的N个分区上打开N个插入。
你看到获得速度需要付出一些努力,所以你必须找到自己的最佳状态......
我没有详细说明每个选项都很容易找到其他信息。