我必须将大量数据从一个数据库实例加载到另一个数据库实例,要求仅使用DBlinks。
使用SQLLDR,我能够达到每秒200K条记录的速度,并希望使用DBLinks复制相同的记录。
使用直接路径插入(附加提示)每秒最多可提供40k记录。但是由于使用直接路径插入会获取表级别,因此我无法打开多个会话以将其扩展到200K。
由于常规插入非常慢,我可能必须打开30至40个会话才能达到所需的速度。是否有办法在同一张表中实现并行直接路径插入?还是有其他方法或DB调优可以帮助我增加每秒插入量?
注意:我已经尝试过分区表,并且锁仍在表上而不在分区上。
我通过使用带有分区子句的insert append找到了解决方案。如果insert子句包含分区信息,则锁位于分区而不是表上。
像这样写查询:
将/ * + append * /插入目标分区(ptnName),然后从source @ dblink选择*(分区过滤条件)。
我在目标表中创建了8个分区,并启动了8个会话以分别加载到各个分区中。它的性能与SQLLDR的速度相匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句