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