次の形式のデータストリームを受信するWindowsサービスアプリケーションがあります
IDX|20120512|075659|00000002|3|AALI |Astra Agro Lestari Tbk. |0|ORDI_PREOPEN|12 |00000001550.00|00000001291.67|00001574745000|00001574745000|00500|XDS1BXO1| |00001574745000|›§
IDX|20120512|075659|00000022|3|ALMI |Alumindo Light Metal Industry Tbk. |0|ORDI |33 |00000001300.00|00000001300.00|00000308000000|00000308000000|00500|--U3---2| |00000308000000|õÄ
このデータは数百万行00000002....00198562
のシーケンスで提供され、シーケンスに従って解析してデータベーステーブルに挿入する必要があります。
私の質問は、これらのデータをデータベースに挿入するための最良の方法(最も効果的な方法)は何ですか?SqlConnectionオブジェクトを開き、SQL挿入スクリプトの文字列を生成し、SqlCommandオブジェクトを使用してスクリプトを実行するという単純なメソッドを使用しようとしましたが、このメソッドには時間がかかりすぎます。
SQL BULK INSERTを使用できると読みましたが、テキストファイルから読み取る必要があります。このシナリオでBULK INSERTを使用することは可能ですか?(私はこれまで使用したことがありません)。
ありがとうございました
更新:SqlBulkCopyを認識していますが、最初にDataTableが必要です。これはパフォーマンスに優れていますか?可能であれば、メモリDataTableを使用せずに、データソースからSQLServerに直接挿入したいと思います。