私は、LINQ-to-SQLクラスのインスタンス化セットを反復処理しています。LINQ-to-SQLと大量変更が非常に遅いです。
この繰り返しの間、私は変更を加えたり、削除のフラグを付けたり、新しいものをdatacontextに挿入したりします。私が反復を終えると、私はcontext.SubmitChanges()
を発射します - それは動作しますが、それは驚くほど遅いです。私はMSSQL 2008のエクスプレス版をローカルで実行しています。
また、更新が必要な行について、UPDATE文が生成されていることがわかりました。すべてのフィールド/列にはUPDATE SET ..... WHERE @p1 = ... AND @p2 = ...
と表示されています。私はテーブルとDBMLスキーマのプライマリキーを定義しましたが、まだプライマリキーの代わりにUPDATEステートメントのすべての列を比較しているようです。
アイデア?
アップデート:私は恐れていたとおり、私は、主キーとテーブルの上に必要なインデックスを定義した後LINQツーSQLスキーマを更新するのを忘れていたので、それは
ました。
問題のボリュームは約40k行です。私の解決策のパフォーマンスには満足しています。
ボリュームが大きくなる場合は、Marcが参照している並行性チェックプロパティを調べます。
私のLINQ-to-SQLスキーマは、DBスキーマでは最新ではないようです。それを更新して与える。 アイデアはまだありません。 – Anders
行数を見積もりたいですか?それは20億円ですか? –
2番目の投稿を質問にマージしました。質問を更新したりコメントを追加したりするのが簡単になります。 –