Как повысить производительность вызовов хранимых процедур через Entity Framework в API C#?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как повысить производительность вызовов хранимых процедур через Entity Framework в API C#?

Сообщение Anonymous »

У меня есть API, написанный на C# с использованием Entity Framework в сочетании с SQL Server. На стороне SQL Server у меня есть несколько процедур, которые я вызываю через Entity Framework из контроллера.
Вот пример вызова одной процедуры:

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

var result = context.MyProcedure.FromSqlRaw(
"EXECUTE [MyDB].[dbo].[MyProcedure] @Param1, @Param2, @Param3, @Param4",
new SqlParameter("@Param1", param1),
new SqlParameter("@Param2", param2),
new SqlParameter("@Param3", param3),
new SqlParameter("@Param4", param4 == "all" ? DBNull.Value : param4)
).ToList();

return Ok(new { result });
Раньше вызовы хранимых процедур выполнялись примерно за 2 секунды, а теперь — за ~20 секунд. При этом такие операции, как фильтрация данных, получение по идентификатору и авторизация, выполняются быстро.
Проведя тест без использования Entity Framework в новом консольном приложении, я обнаружил, что процедура выполняется в течение ожидаемых 2-3 секунд. Однако замена вызова через Entity Framework аналогичным кодом в ASP.NET MVC приводит к той же задержке ~20 секунд. Судя по всему, задержка связана с процессом выборки данных после вызова процедуры.
Как можно повысить производительность таких вызовов? Существуют ли способы оптимизации или альтернативные методы вызова хранимых процедур через Entity Framework для сокращения времени выполнения?
Как описано выше, я попробовал запустить процедуру из той же базы данных через пустое консольное приложение без Entity Framework, и это сработало очень быстро.

Подробнее здесь: https://stackoverflow.com/questions/781 ... y-framewor
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как обрабатывать выходные данные хранимых процедур в веб-API ASP.NET Core 6 с помощью EF Core 6
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Преобразование хранимых процедур PL/SQL в Java
    Гость » » в форуме JAVA
    0 Ответы
    48 Просмотры
    Последнее сообщение Гость
  • Сопоставление хранимых процедур неверно.
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Миграция хранимых процедур с помощью Alembic
    Anonymous » » в форуме Python
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Программная компиляция хранимых процедур с использованием C#
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

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