В настоящее время у меня есть запрос, который выглядит следующим образом:
using (var ctx = new myEntities())
{
ctx.Configuration.LazyLoadingEnabled = false;
ctx.Configuration.ProxyCreationEnabled = false;
ctx.Database.CommandTimeout = 200;
competitors = DBRetry.Do(() => ctx.SearchedUsers.AsNoTracking().Where(x => x.InQueue == true).OrderBy(x => x.LastUpdatedAt).Take(2000).ToList(), TimeSpan.FromSeconds(1));
}
Так как часто таблица "SearchedUsers" используется другими пользователями / приложениями, я обычно получаю замедления / взаимоблокировки при выполнении запроса к этой базе данных.
Я провел небольшое исследование, чтобы ускорить этот процесс, отключив отложенную загрузку, используя трюк AsNoTracking () с запросом и увеличив время ожидания команды при выполнении запроса к БД, однакоиногда случаются тупики ...
Итак, мои вопросы здесь:
- Как бы превратить этот запрос в скомпилированный
- Сколько производительности можетЯ ожидаю, что при выполнении скомпилированного запроса вместо обычного?
Может ли кто-нибудь помочь мне реализовать решение скомпилированного запроса?