Я использую эту библиотеку для массового удаления в пакетах, как показано ниже:
while (castedEndedItems.Any())
{
var subList = castedEndedItems.Take(4000).ToList();
DBRetry.Do(() => EFBatchOperation.For(ctx, ctx.SearchedUserItems).Where(r => subList.Any(a => a == r.ItemID)).Delete(), TimeSpan.FromSeconds(2));
castedEndedItems.RemoveRange(0, subList.Count);
Console.WriteLine("Completed a batch of ended items");
}
Как вы видите, ребята, я беру серию из 4000 элементов для удаления сразу и передаю их в качестве аргументазапрос ...
Я использую эту библиотеку для массового удаления:
https://github.com/MikaelEliasson/EntityFramework.Utilities
Однако такая производительность абсолютно ужасна ... Я тестировал приложение пару раз инапример, для удаления 80000 записей требуется буквально 40 минут !?
Следует отметить, что этот параметр, по которому я удаляю (ItemID), относится к типу varchar (400) и индексируется по соображениям производительности ....
Есть ли какая-либо другая библиотека, котораяЯ мог бы использовать или настроить этот запрос, чтобы он работал быстрее, потому что в настоящее время производительность абсолютно ужасна ..: /