私は現在、エンティティフレームワークを使用する(4.0バージョンの)既存のc#プロジェクトのパフォーマンスを改善する過程にあります。アプリケーションで実行される一括操作には、次の2種類があります。
- バルクインサート
- 一括削除
現在、これらは純粋なSQLステートメント( "INSERT INTO ..."、 "DELETE FROM ...")を使用して実行されます(挿入ステートメント自体は現在、一括挿入ステートメントではなく、代わりに「通常の」挿入ステートメントです)。
私はC#にかなり慣れていないので、最初のステップは、更新と削除にエンティティフレームワークを使用した場合のパフォーマンスを確認することでした。
ここでの私の質問は3つに分かれています。
- エンティティフレームワークで一括挿入を実行しようとすると、挿入されたデータ行ごとに1つの挿入が使用されるというのは本当ですか?(したがって、各インサートの往復)。したがって、パフォーマンスはSQLの「挿入」を使用するよりも低くなりますか?
- これは削除ステートメントにも当てはまりますか?
- ここでのベストプラクティスは何ですか?SQLステートメントを使用するには?または、エンティティフレームワーク、または他の何かを完全に使用するには?
(データ行については、それぞれ2k〜200kのサイズについて話しています)。
ありがとう