0

我需要比较来自不同服务器上的两个数据库(它们都是 DB2)的数据,它们之间没有现有连接。因为这两个数据库都在生产中使用,所以我不想让它们过载,因此我将在我的本地机器上创建一个新的数据库(可能是 MySQL),从两个 DB2 中提取数据,插入 MySQL 并在本地进行比较.

我想在 Java 中执行此操作,所以我的问题是如何在不使生产数据库超载的情况下尽可能有效地执行此任务。我做了一些研究,并提出了以下几点:

  • 限制我将在初始 SELECT 语句中使用的列数
  • 调整 ResultSet 对象的获取大小(IBM DB2 JCC 驱动程序的默认值似乎是 64)
  • 使用 PreparedStatement 对象预编译 SQL

还有什么我可以做的,或者有什么其他建议吗?

谢谢

4

2 回答 2

2

DB2 for Linux UNIX, and Windows 包括 EXPORT 实用程序作为其运行时客户端的一部分。该实用程序可以指向 z/OS 上的 DB2 数据库,以快速将表(或查询结果集)导出到客户端机器上的平面文件中。您可以选择平面文件是定界的、固定宽度的还是 DB2 专有的 IXF 格式。您的 z/OS DBA 应该能够帮助您在工作站上配置客户端,并按照 EXPORT 实用程序的要求将必要的包绑定到 z/OS 数据库中。

一旦你的客户端上有平面文件,你可以随意比较它们。

于 2012-06-26T18:06:46.247 回答
0

听起来对于 map reduce (hadoop) 来说是一项很棒的工作。一项有两个映射器的工作,一个用于每个 DB 和一个 reducer 来进行比较。它可以扩展到您需要的任意数量的处理器,或者只在单台机器上运行。

于 2012-06-26T13:43:23.800 回答