Я бы предпринял некоторые действия, чтобы смягчить эту проблему;
1) В Entity Framework, как правило, существует требование, чтобы записи / объекты загружались в память, прежде чем вы сможете их удалить, что может быть большимпроизводительность поразила сама по себе.
Может быть лучше вместо этого запустить несколько пользовательских SQL для этой операции
2) Создать индексы в таблице базы данных для даты транзакции поля
Представьте себе, что база данных должнаВыполните запрос в большой таблице, чтобы выполнить запрос select-> where, учитывая достаточно большой набор записей, поэтому он должен просмотреть все их, чтобы определить, какие записи вам нужны.Добавление индексов к этой таблице помогает определить в базе данных, какие поля вы запрашиваете чаще всего, и позволяет базе данных оптимизировать эти операции для вас.
3) Выполнять запрос чаще, чем за 30 дней
Предполагая, чтоэто обычная операция по ведению домашнего хозяйства, выполнение которой чаще, чем 30 дней, сведет к минимуму количество строк в таблице базы данных.В некоторых базах данных вы даже можете добавлять расписания, поэтому нет необходимости включать это в код.
4) Удалять записи партиями
Если для этого вам нужно использовать Entity Framework, выможете выбрать строки, которые вы хотите удалить партиями по X раз;эта справка распределяет нагрузку на базу данных, на случай, если операция может занять много минут.