5

Entity Framework は 1 つずつ追加されるため、一括挿入に使用することはお勧めできません。(例1例2 )

100Ks のオブジェクトなど、その下に大きなグラフを持つ 1 つのオブジェクトをアタッチするのはどうですか? - 具体的には:

  • これを行うために EF5 を使用する場合の (時間/メモリ) パフォーマンスの考慮事項は何ですか?
  • 大きなグラフを保存するためのベスト プラクティスはありますか?
  • リレーショナル データベースは、大規模なグラフを保存するのに適していますか?

背景のビット:

  • グラフは EF5 POCO を使用して作成され、ルートにアタッチされて保存されます。グラフは常に新しいデータであり、更新されることはありません。使用するDBはSQL Server 2012です。

  • 大規模なケース (100Ks オブジェクト) の場合、実際の作成プロセスには数十秒かかることがあるため、アタッチ/保存プロセスにその時間の 10% がかかっても、全体的な時間のパフォーマンスに大きな影響はありません。

4

1 に答える 1

4

何故か誰も答えていないので、ここでは通称 EF の専門家でさえ、質問してみます。

最近、私は大量のサイクル参照とエンティティ間の多数の関係を持つ複雑なモデルを扱ってきました。そして大量のデータ、はい、あなたのものと同じかそれ以上です。私は多くのことを試しましたが、どれも私にとって便利ではなかったので、Fastest Way of Inserting in Entity Frameworkを使用して終了しました。それは一年前に私を大いに助けてくれました。


ただし、エンティティ間に複雑な関係があまりなく、一度だけ挿入する完全に新しいデータが大量にある場合は、既に述べたようにSqlBulkCopyが最速の方法です。この場合は非常に高速でシンプルだからです。
たとえば、CodeFirst アプローチを使用すると、最初にデータベース構造を作成してから、単純にデータを挿入できます。

それが役に立てば幸い!私はこれらのソリューションを使用したことがないので、NoSQLストレージを使用することがあなたのケースで高速または納得できるかどうかはわかりません。経験豊富な同僚がそれについていくつか追加するかもしれません。

于 2013-06-27T19:56:29.223 に答える