gpt4 book ai didi

java - 比较 postgres 和 db2 表

转载 作者:行者123 更新时间:2023-12-01 15:42:07 24 4
gpt4 key购买 nike

通常我会用一个简单的联合来解决这个问题。但这一个有我。我有一个表复制到两个不同的数据库引擎。一份在 postgres 中,一份在带有 DB2 的 AS/400 上。

我需要想出一个例程,它采用 postgres 表,将每个记录的字段中的数据与 DB2 表进行比较,并将不同的记录记录在 postgres 表中以进行报告。

当前系统遵循此模型

    load postgres data into recordset prs
for each record in prs {
search for record in db2
compare record
if diff, log
}

这通常有效。问题是,看到大约有 500,000 条记录,大约需要 3 小时才会触发我们的 VPN 中的错误,从而终止连接。当然,你必须重新开始,重新设计例程比修复 VPN 错误更快。

我正在考虑一个例程,将 db2 数据放入临时表中,然后执行联合查询,但我在创建和删除表时遇到了安全问题。

我能想到的最现实的方法是将db2数据作为记录集加载,然后将其加载到以db id号为键的 HashMap 中,然后循环postgres数据,但这可能会严重占用我的内存资源。但它更多的是一种蛮力技术。你们能想到更优雅的解决方案吗?

编辑--抱歉,该表年初时有 350 万条记录,因此内存解决方案变得非常不切实际。有什么想法吗?

最佳答案

我会尝试做的是将主键划分为多个范围,使每个作业的大小易于管理(并且在触发 VPN 错误所需的时间内)。

使用这些范围打开 2 个记录集,每个表 1 个,迭代两个比较记录(有点像合并排序,但现在用于两个源之间的比较)。这应该比查询另一个表来查找记录更快。

关于java - 比较 postgres 和 db2 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com