最近、問題なしでバルクコピーを使用していましたが、これまでエンティティフレームワークの追加によってすべてのコードを変更するように更新されましたが、今は良い選択肢を見つけるための問題があります。Updatet Entity Frameworkを使用したバルク挿入代替?
データベースに多数のデータを挿入する必要があります。現在、データテーブルのすべてのデータを解析しています。その後、一括挿入を行います。 10個の列を持つ1つのテーブルに挿入する必要があり、挿入される行は1000から5000まで、おそらくそれ以上は7000までは変わらない可能性があります。そのテーブルMyTableで準備したテーブルは、そして、DBテーブル「MYDB_CONTENT」:
using (Oracle.DataAccess.Client.OracleBulkCopy bulkCopy = new Oracle.DataAccess.Client.OracleBulkCopy(dbConnectionString))
{
// The DBtable I'm loading the data to
bulkCopy.DestinationTableName = "MYDB_CONTENT";
bulkCopy.BatchSize = csvData.Rows.Count;
bulkCopy.BulkCopyTimeout = 30;
//Load the data to the database
bulkCopy.WriteToServer(MyTable);
// Close up
bulkCopy.Close();
bulkCopy.Dispose();
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
}
dbconn2.Close();
私が読んでいると私は古い本に関連した質問のいくつかを見たが、この時点で「一括」以外EF上で実装されていないようですいくつかのカスタムライブラリでは、これらのコードを他のコードで使用することが許可されているかどうかはわかりません。他のオプションは無料ではありません。また、Managed DataAccessバージョンでOracle.DataAccess.clietntを変更しようとしていますが、挿入数が多いため、これは良い考えではありません。私はEFでパフォーマンスを読んできました。大きな挿入にはあまり適していません。これはセグメント化された挿入の一部なので、このような4〜10個の挿入がシーケンシャルに加えられ、可能であれば、これはあまり高くありません...
いくつかのアドバイスは本当に感謝して、おそらくいくつかの簡単なコードは素晴らしいだろう!
ので、初心者が学び、私はしばらく前に似たような状況があった:)
私は多分コード内の「バルク」の統合を修正することが可能であろう、数日後にもう一度だけ考えtakingthe問題ですが、これは問題を作るように見えますライブラリと一緒に。このエラーは、Oracleライブラリに互換性がないと示しています。どのようにこれを修正するための任意のアイデア?たぶんそれは簡単で、私はインサートに良いバルクファッションの方法を維持するだろう... – Juano