如何使用Java从DB2数据库中有效地检索200万条记录?

时间:2014-06-24 15:54:28

标签: jdbc db2 large-data

我需要使用Java从Db2数据库中检索和处理大约200万条记录。我们正在将表从一个数据库迁移到另一个数据库,因此我尝试在两个表之间进行差异检查,以检查数据是否存在任何差异。

目前我正在进行常规查询并将数据放入结果集并使用HashMap处理它。但它需要永远处理。我确实尝试将fetchsize设置为一个合适的值(200),但这也无济于事。

还有其他更好的方法来检索数据,比如进入块并处理它吗?

2 个答案:

答案 0 :(得分:0)

实现“检查数据是否存在差异”目标的一种简单方法是以相同格式从两个表中导出数据,并使用您喜欢的文件DIFF程序。

在Windows环境中,我通常使用Notepad ++或Windiff来实现这一点。

如果您无法使用该策略,那么在数据库引擎中进行比较将是一个紧迫的第二选择。在新数据库中创建表的副本,并编写一个简单的SQL脚本来为您搜索DIFF。我喜欢使用完整的外部联接,返回一行或另一行为空的行。

select a.*, b.*
from a 
full outer join b
on a.key1 = b.key1
and a.otherkeys = b.otherkeys
where a.key1 is null 
   or b.key1 is null

答案 1 :(得分:0)

从旧数据库导出函数/批处理(jaxb) - >创建XML文件 - > 从XML(s)导入函数/批处理(休眠)到新数据库