C#のメモリ(list<T>
および)には70億行近くのデータがあります。sortedlist<T,T>
このデータをSQLServerのテーブルに挿入したいと思います。これを行うには、SqlConnection
コレクションごとに異なるものを定義し、接続プールをFalseに設定します。
まず、接続モード(ExecuteNonQuery
)でデータを挿入してみました。異なるコレクションのすべての挿入メソッドを同時に定義Parallel.Invoke
して呼び出したとしても、速度が遅すぎて、これまでは完了できませんでした(順次挿入と同時挿入の違いを区別できませんでした)。
また、からオブジェクトを作成しようとしましたSqlDataTable
。テーブルを埋めるために、コレクションからすべてのデータを1回読み取り、にデータを追加しますSqlDataTable
。この場合、とを設定しSqlBatchSize=10000
ます。しかし、これも非常に遅いです。SqlTimeOut=0
SqlBulkCopy
どうすれば大量のデータをSQLServerにすばやく挿入できますか?