【发布时间】:2017-04-14 06:14:34
【问题描述】:
我想比较两个表,每个表有百万条记录,并从比较中获取匹配数据。
为了从两个表中获取匹配数据,我们首先比较table1 中的名称不应等于table2 中的名称。然后我们比较table1 中的城市应该等于table2 中的城市,最后我们比较table1 中的date_of_birth 应该与table2 中的date_of-birth +-1 年范围内。
Table 1 中的单行可以与Table 2 中的数据有多个匹配项。
此外,对于每个匹配项,我都需要一个唯一的记录 ID,并且单个表 1 行的多个匹配数据必须具有相同的唯一记录 ID。
我尝试使用 Java 代码和 PL/SQL 过程,但两者都需要数小时,因为这涉及将数百万数据与数百万数据进行比较。有没有更快的方法来进行这种匹配?
【问题讨论】:
-
您能否分享表格的列以及您比较这些表格所依据的列。
-
首先,由于您已经在 DB 中有数据,Java 肯定不是比较的正确解决方案。至于 DB,这样的任务需要的不仅仅是调整查询;数据存储、数据库和表定义、索引、硬件等起着更重要的作用。这是一个广泛的领域,您应该就此咨询您的 DBA。
标签: java database oracle performance optimization