我有两个数据库sachems包含数百万条记录(6亿到1亿条记录)(让我们假设学生记录) 第一个模式是暂存模式,第二个是目标产品模式,
我想在复制它之前检查prod架构中是否存在临时架构中的相同用户(如果存在则应用某些合并逻辑)
我有一些PL / Sql代码按顺序运行并匹配记录,但是进程非常慢,即使在索引和性能调整时也是如此。
可以使用的任何匹配器,还是pl / sql函数的多线程?在oracle中有没有更好的选择我可能会丢失?
一种可能的解决方案是从prod模式复制一些数据(参与复制过程的数据)并在分段模式中执行比较,但复制数据开销可能与比较相同。
样本记录:
Student_first_name,Student_Last_name,SSN
foo, ,bar ,123456
答案 0 :(得分:0)
首先 - 在模式之间复制数据不会有利于您的性能,Oracle在模式内查询上执行速度不快。
第二 - 使用单个SQL来识别重复记录(或丢失记录,无论哪个是表的较小部分,然后单独在这些行上执行pl / sql代码)可能会有很大帮助(通过将它们存储在游标中)或者使用专用列来扩散它们,特别是如果每天添加的数据量与完整产品表相比可以忽略不计。