我们正在迁移具有大量数据集(100个以上的表,其中许多是1000万个以上的记录)的旧项目。其中很少有庞大的公司(约1亿)。
切换应用程序时,我们将只有几个小时的时间将此数据迁移到具有相同表但结构略有不同(因此无法导入或抽取)的新应用程序中。
我们将插入以下记录:
效果很好,但完成时间较长(大约5分钟,大约记录了1000万条记录)。大部分时间都花在STEP 6中,并且专门用于父子都很大的外键约束。
我们如何如上所述优化数据库的插入性能?
答案 0 :(得分:2)
如果您正在寻找性能,那么在通过db_link传递数据时将会遇到问题。
将数据卸载到平面文件,然后设置外部表/ CTAS或SQL Loader将数据加载到新系统中。它会明显地更快。
A very small example showing the type of rates I was able to achieve on just a laptop and a VM.
TL / DR;
在Windows笔记本电脑上通过SQL Loader每秒112,000行。
答案 1 :(得分:2)
很高兴收到不同的方法,但是我们将完善我们的方法(因为我们已经有了可行的解决方案)。有人说这可能不是“最佳”的方式,但可以解决我们在此特定情况下的担忧。
所以我们最终遵循的步骤是;
以
开头的脚本中的所有表都重复上述步骤ALTER SESSION ENABLE PARALLEL DDL
表格: 99
记录: 593,960,688
花费时间: 01:23:44 小时
答案 2 :(得分:0)
如果您只有两个小时才能迁移一个大型项目,则可以执行以下操作:
alter tablespace new_stuff read only;
)read write
。