Мысли о методе максимальной производительности в отношении LINQ - PullRequest
3 голосов
/ 29 февраля 2012

У меня есть таблица, которая насчитывает 350448 записей, из которых мне нужно выполнить несколько повторяющихся запросов через LINQ с Entity Framework.

Количество этих повторяющихся запросов составляет приблизительно 1440 , я не могу изменить базу данных.

Как лучше всего с точки зрения производительности:

  • Выбрать все 350448 записей и запросить их на клиенте
  • Выполнение 1440 запросов к базе данных
  • Попытка сначала сузить данные, а затем выполнить запрос на клиенте

Мне нужно иметь возможность поиска дляВ основном 1440 предметов, но я знаю о возможных проблемах с производительностью.

1 Ответ

0 голосов
/ 29 февраля 2012

Звучит так, как будто вы можете суметь сойти с рук:

List<DateTime> dates = ...;
var query = context.MyEntities
                   .Where(x => dates.Contains(x.LastUpdated))
                   .ToList();

Тем не менее:

  • Я не уверен , поддерживает ли EF Contains так же, как LINQ to SQL
  • Возможно, вам придется разбить запрос на несколько пакетов; это зависит от того, достаточно ли у EF умение использовать табличный параметр (и поддерживает ли его база данных).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...