数百万を持った後、本当に遅いました。挿入は、私は基本的にはこのようになりますテーブル構造を持つレコード
これらのテーブルのうちの2つには、何百万と何百万もの記録が含まれています(UserTransactionsを確認した最後の時間は約1,400万レコードでした)。
これらのテーブルのいずれかに挿入を実行しようとすると、私は巨大なパフォーマンス問題と減速に直面しています。
挿入のための私のコードは次のようになります。
using (var ctx = new mydbEntities())
{
ctx.Configuration.AutoDetectChangesEnabled = false;
ctx.Configuration.ValidateOnSaveEnabled = false;
_listOfUserTransactions; // List<UserTransactions>
ctx.BulkInsert(_listOfUserTransactions);
ctx.SaveChanges();
}
はのは_listOfUserTransactions自体が100kのエンティティをcontiansと仮定しましょう。テーブルのレコード量が少なくなる前に、インサートはすごく高速に実行されていました...今は非常に遅くなり、BulkInsertで100kレコードを挿入するのに数時間かかることがあります...
私はもう何もしませんインサートのパフォーマンスを向上させる...
あなたは私を助けることができますか?
私の最初の推測は、あなたがこれらのテーブル上のどのインデックスをチェックし、できるだけこれを減らすかということです。第2に、表の主キーがクラスター化されていて、それ以外のものがある場合は、クラスター化されていないものにすると、挿入時に表の再編成が必要になります。 – MikeS
@MikeあなたはUserItemsのUserId FKにノンクラスタードインデックスを追加することを意味しますか? – User987
@MikeSあなたの答えをもう少し詳しく説明できますか、私はあなたが何を意味するのか正確には分かりませんか?私がそれを受け入れることができるように答えとして私にこれを返せたら:) – User987