2

私が直面している状況は次のとおりです。

データベース (MS SQL サーバー) に書き込まれるエントリを作成するために、C# アプリによってデータが抽出される「フラット」ファイルが多数あります。データベースの完全なリリースは、220 GB にわたる最大 9,700 万のエントリで構成されます。

このタスクは、新しい完全リリースを解析し、更新された既存のエントリを見つけることによって、データベース内のデータの差分更新を作成することです。プロパティのいずれかが変更された場合、エントリは更新されたと見なされます。
[更新] 各エントリには一意の ID があります。

問題は、データ プロバイダーがエントリの変更の表示 (バージョン番号または最終変更日) を提供せず、フル リリースのみを提供することです。

私がこれまでに思いついた解決策は、各エントリのハッシュ サムを生成し、新しいものと古いものを比較することです。
ハッシュ サムを望ましくないものにしているもう 1 つの側面は、データのサイズとエントリ数の組み合わせです。これは驚くべきことです。

それで、これよりも良い解決策はありますか?

ケースのヘルプは大歓迎です!

頑張れ、ボリスラフ

4

1 に答える 1

0

レコードを一意に識別するために使用できるキーはありますか?

そうでない場合は、同一のもののみを見つけることができます。次に、新しいリリースで一致しない既存のレコードをすべて削除し、既存のリリースのレコードと一致しないすべてのレコードをリリースから追​​加する必要があります。

ただし、キーがあると、作業がはるかに簡単になります。

于 2010-09-09T10:58:24.747 に答える