Я делаю вызов к внешней базе данных за пределами моей локальной сети, однако запрос занимает 40 секунд, чтобы закончить ..LINQ принимает 40s для завершения запроса - Производительность
я делаю вызов с помощью EDMX.
String Example = "Example";
var Result = EDMXEntity.Entities
.Where(
x =>
(
x.Name.ToString().ToLower().Contains(Example.ToLower())
))
.Take(50)
.ToList();
текущий код благодаря Szer:
var Result = EDMXEntity.Entities.Where(x => SqlFunctions.PatIndex(x.Name.ToString().ToLower(), Example.ToLower()) > 0).Take(50).ToList();
ваш 'IQueryable' преобразует в' ВЫБРАТЬ TOP 50 * FROM [Extent1 ] WHERE (CAST (CHARINDEX (LOWER (@ p__linq__0), LOWER (CASE WHEN ([Extent1]. [Name] IS NULL) THEN N '' ELSE [Extent1]. [Name] END)) AS INT))> 0' , Вероятно, где предложение является причиной отставания – Szer
Есть ли у вас вопрос о том, как улучшить производительность? – neverendingqs
@Szer да запрос преобразуется в это, то, что я хотел, было похоже на select * from Entities Где ниже (Name), например '% Example%', выполнение этого запроса в студии управления SqlServer занимает ~ 1 с – BrunoMartinsPro