SQL Server Integration Services (SSIS) 内には、数百万のレコードを保持できるフラット ファイルへの接続をセットアップし、そのデータを SQL DB にプッシュする機能があります。さらに、このプロセスは、Microsoft.SqlServer.Dts.Runtime 名前空間を参照して使用することにより、C# アプリから呼び出すことができます。
何百万ものレコードを含むフラット ファイルを SSIS で実行するのが最適でしょうか、それとも集合的な "あなた" は複数のワーカー スレッド (行を読み取って変数に追加するスレッド、その変数から DB に書き込むスレッド) を持つ ac# アプリを好むでしょうか? 、そしてそれらのスレッドを管理する「マザー」クラス?(開発ボックスには 2 つの CPU があります)
このデータ ( sql team blog ) を見たところ、100 万行のフラット ファイルの場合、SSIS が最速であることがわかりました。
Process Duration (ms)
-------------------- -------------
SSIS - FastParse ON 7322 ms
SSIS - FastParse OFF 8387 ms
Bulk Insert 10534 ms
OpenRowset 10687 ms
BCP 14922 ms
あなたの考えは何ですか?