Почему EF 4.6 работает лучше, чем EF Core 8 при простом запросе выбора?C#

Место общения программистов C#
Anonymous
Почему EF 4.6 работает лучше, чем EF Core 8 при простом запросе выбора?

Сообщение Anonymous »

У меня есть проект .NET Framework 4.6, который я переписываю с помощью .NET 8. Существует простой запрос, который работает быстрее в EF 4.6, чем в EF Core 8. Этот запрос привел к снижению производительности в новом рефакторинге проекта. Запрос:

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

dbContext.Edits.OrderByDescending(e => e.Id).FirstOrDefaultAsync(e => e.ReferenceId == referenceId, cancellationToken)
В проекте .NET Framework 4.6 этот запрос выполняется примерно за 22 миллисекунды, но в версии .NET 8 с EF Core 8 это занимает около 700 миллисекунд. Обе версии работают в одной среде и подключены к одной и той же базе данных.
Таблица редактирования содержит более миллиона записей. Он имеет кластеризованный индекс в столбце Id и некластеризованный индекс в столбце ReferenceId (который является полем NVARCHAR). База данных работает на SQL Server 2008 (уровень совместимости 100). Поведение отслеживания отключено в обоих проектах.
Я не уверен, почему EF 4.6 превосходит EF Core 8 в этом сценарии. Требуется ли какое-либо изменение конфигурации или оптимизация для достижения аналогичной производительности EF Core 8?

Подробнее здесь: https://stackoverflow.com/questions/790 ... lect-query

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