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