0

約100列と約10000行のテーブルがあります。定期的に同様のデータを含むExcelを受け取り、テーブルを更新する必要があります。Excelに新しい行が存在する場合は、それらをデータベースに追加する必要があります。古い行が更新されている場合は、データベースの行を更新する必要があります。一部の行が削除されている場合は、メインテーブルからその行を削除して、別のテーブルに追加する必要があります。

私は次のように進めることを考えました:

dbからDataSetにすべての行をフェッチします。ExcelからDataSetにすべての行をインポートします。現在結合を使用しているこれら2つのデータセットを比較し、必要な操作を実行します。

私はこれほどの規模のデータを扱ったことがなく、パフォーマンスが心配です。この要件を実現するための理想的な方法を教えてください。

前もって感謝します。:)

4

2 に答える 2

3

10k レコードのパフォーマンスについて心配する必要はありません。

おそらくそれを行うためのより良い方法は、一時テーブルにExcelファイルをインポートし、いくつかの単純なSQLクエリで処理を行うことです...開発時間を節約し、パフォーマンスが向上する可能性があります...

于 2012-11-09T20:36:52.117 に答える
2

私の経験が言うように、次のように t-sql で行うことを選択した場合、それはとても簡単です。

  1. 、、、リンク サーバー、DTS、および SQL Server の他の多くのものを使用して、Excel ファイルを一時テーブルにインポートでき"OPENROWSET"ます。"OPENQUERY"
  2. そのための簡単なクエリをいくつか書くことができます。SQL 2008 を使用している場合は"MERGE"、質問に正確に対応しています。

もう 1 つのことは、パフォーマンスが C# とは大きく異なることです。句を使用"TOP"して比較をチャンクし、他の多くのことを行うことができます。

それが役に立てば幸い。乾杯

于 2012-11-09T20:38:33.583 に答える