При перемещении программного обеспечения .net 6 на новый сервер производительность .contains значительно снижается.C#

Место общения программистов C#
Ответить
Anonymous
 При перемещении программного обеспечения .net 6 на новый сервер производительность .contains значительно снижается.

Сообщение Anonymous »

У меня есть программное обеспечение, написанное с использованием C#/.Net 6
Оно отлично работает на моем ПК и отлично работает на сервере в течение года.
Мы только что перенесли программное обеспечение на новый сервер, и одна конкретная его часть работает медленно (раньше это занимало 1 секунду, теперь занимает 40 секунд)
Следующее все еще работает за 1 секунду (и возвращает 1000 строк из 16 000 - не важно сколько строк, это занимает 1 секунду)

Код: Выделить всё

IQueryable query = _context.Dogs.Include(x => x.Owner);
query = query.Where(x => x.Id <  1000);
Но следующее занимает 40 секунд (на другом сервере это заняло 1 секунду)

Код: Выделить всё

IQueryable query = _context.Dogs.Include(x => x.Owner);
query = query.Where(x => x.Descr.Contains("the"));
SQL изменился с 2018 по 2022 год, но мы используем 2022 в офисе, и он по-прежнему работает нормально.
Я понимаю, что .contains — это не наиболее эффективно, но это работает нормально на одном сервере и ужасно на другом.
Мы использовали SQL Profiler и видим, что при запуске из программного кода он занимает 40 секунд.
А еще взяли код SQL, созданный C#, и запустили его в Management Studio, и это заняло 1 секунду.
Мы попробовали изменить предложения Where на различный все более сложный код, и все работает нормально, за исключением при использовании .Contains.
Помощь, пожалуйста?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ns-is-much
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»