0

異なるサーバー上にある 2 つのデータベース (どちらも DB2) からのデータを比較する必要があり、それらの間に既存の接続はありません。両方のデータベースが本番環境で使用されているため、オーバーロードしたくないため、ローカル マシンに新しいデータベース (おそらく MySQL) を作成し、両方の DB2 からデータを抽出し、MySQL に挿入して、ローカルで比較を行います。 .

私はこれを Java で行いたいので、私の質問は、本番データベースに過負荷をかけることなく、このタスクをできるだけ効果的に行う方法です。私はいくつかの研究を行い、次の点を思いつきました。

  • 最初の SELECT ステートメントで使用する列の数を制限する
  • ResultSet オブジェクトのフェッチ サイズを調整します (IBM DB2 JCC ドライバーのデフォルトは 64 のようです)。
  • PreparedStatement オブジェクトを使用して SQL をプリコンパイルする

私にできること、または他の提案はありますか?

ありがとうございました

4

2 に答える 2

2

DB2 for Linux UNIX、および Windows には、ランタイム クライアントの一部として EXPORT ユーティリティが含まれています。このユーティリティは、z/OS 上の DB2 データベースを指して、テーブル (またはクエリ結果セット) をクライアント マシン上のフラットファイルにすばやく排出することができます。フラットファイルが区切り記号付き、固定幅、または DB2 独自の IXF 形式のいずれであるかを選択できます。z/OS DBA は、ワークステーションでクライアントを構成し、EXPORT ユーティリティーの要求に従って必要なパッケージを z/OS データベースにバインドするのを支援できるはずです。

クライアントにフラットファイルがあれば、好きなように比較できます。

于 2012-06-26T18:06:46.247 に答える
0

マップリデュース(hadoop)の素晴らしい仕事のように聞こえます。各DBに1つずつ、比較を行うためのレデューサーに1つずつ、合計2つのマッパーを使用する1つのジョブ。必要な数のプロセッサに拡張することも、単一のマシンで実行することもできます。

于 2012-06-26T13:43:23.800 に答える