2017-07-14 14 views
4

|(パイプ)で区切られたフラットファイルが多数あります。このフラットファイルは、SSISパッケージを使用してSQL Serverで毎日処理します。各フラットファイルは、ヘッダーセクション、コンテンツセクション、フッターセクションに分かれています。私たちは定期的に同じファイルの新しいバージョンを取得します。我々は、処理の負荷を軽減するために、同じファイルの2つのバージョン間でファイル比較機能を実装しようとしています。2つのフラットファイルの内容を比較する最良の方法

どの方法がより効率的になりますか?

  1. サム列を持つ別のSQL Serverのテーブルに同じファイルの両方のバージョンを保存し、チェックサム値が一致していないいる行を除外。

  2. C#または他のC#で利用可能な他の比較アルゴリズムで同様のチェックサムロジックを実装する。

これを達成するための他の新しいアルゴリズムをお勧めします。

+0

ファイルの内容を少し貼り付けることはできますか? –

+0

Muraliのためにこれはうまくいったのですか? – scsimon

+0

Verson 1ファイル: H1 | 11 | 111111111111111 | | 111111111 | AAAAAAA | 2222222 | 20160205 | H2 | 33 |テストテスト| 2 | 2 | 2 | 2 | 2 | 2 | 3 | 20160205 H3 | 33 | 44 | 55 | 55 | 66 | 77 | Verson 2ファイル: H1 | 11 | 55555555555 | | 7777777 | bbbbbbbb | 666666 | 20160205 | H2 | 33 |テストテスト| 2 | 2 | 2 | 2 | 2 | 2 | 3 | 20160205 H3 | 33 | 44 | 55 | 55 | 66 | 77 | –

答えて

0

これらの両方をSQL Serverに既にロードしている場合は、目的が何であるかによって、速やかにEXCEPT() or INTERSECT()が使用されます。

select * from version2 
except 
select * from version1 

これはまさにversion1内の行と一致しませんでしたversion2内の行を返します。それを比較したい場合は、1つの列だけを選択することもできます。

関連する問題