私はアプリケーションに大量のレコードをロードしています(100万+)。処理には、すべてがメモリに格納されている必要があります。DataTableを使用するよりも速くSqlBulkCopyを使用できますか?
その後、すべての(変更された)レコードを空のテーブルにダンプします。
レコードの読み込みにはほんの数秒しかかからず、MyRecord
という大きな配列で終わります。
SqlBulkCopy
を使用して保存するのにも数秒かかります。
しかしSqlBulkCopy
は(私は信じている)DataTable
を必要 - とDataTable
に私のレコードをロードすると遅いです -
dataTable.Rows.Add(myRecord.Name, myRecord.Age, ....)
を使用して、毎分約7500の記録この中間のステップを実行するより高速な方法はありますか?
は、あなたが見たことがありhttps://stackoverflow.com/questions/13722014/insert-2-million-rows-into-sql-server-faster(そこにいる人は100万行/秒を請求しています)あなたのDataTableは、インデックス、キー、式の列、制約、他のテーブルとの関係などを持っていますか、それとも簡単なことができますか? –
私のデータテーブルは完全にシンプルですが、余分なものがない文字列、intおよびdatetimeフィールド – NibblyPig
彼の例は新しい行を作成してデータを追加しています。これは私がやっていることです。私はなぜあなたがそれをする必要がないときに反射を使用しているのか分かりません。 – NibblyPig