Entity Framework - Простой запрос занимает 3 минуты - PullRequest
0 голосов
/ 08 октября 2019

Я использую Entity Framework 6 Code First с базой данных Oracle (используя Devart DotConnect для Oracle)

С определенным запросом с SingleOrDefault для выполнения запроса требуется 1 секунда:

-- Executing at 08.10.2019 10:04:04 +02:00
-- Completed in 1211 ms with result: d

Но в течение 3,5 минут ничего не происходит, пока соединение не будет закрыто:

Closed connection at 08.10.2019 10:07:41 +02:00

За это время загрузка ЦП сервера базы данных увеличится до 100%.

Если я выполняю тот же запрос непосредственно в базе данных, это очень быстро.

, если я немного изменяю свой запрос LINQ, это также очень быстро.

У вас есть идея, чтоЯ могу попытаться найти источник проблемы и почему есть разница между выполнением запроса напрямую или из Entity Framework?

1 Ответ

1 голос
/ 08 октября 2019
  1. Включите dbMonitor и укажите SQL, сгенерированный поставщиком EF.

  2. Проверьте окно параметров в dbMonitor и убедитесь, что типы данныхпараметры, используемые в условии WHERE, совпадают с типами данных соответствующих столбцов.

  3. Сообщите нам версию и версию вашего сервера Oracle.

...