Один из контроллеров должен выполнить простой запрос (в основном SELECT TOP 1 * FROM Companies WHERE id = @id; в терминах EF,
Код: Выделить всё
var data = await _context.FindAsync(id)При первом запуске этого запроса на каждый HTTP-запрос требуется более 3 секунд; последующие вызовы в том же _context - даже для получения той же компании - обычно возвращаются через время примерно 0,0000040 секунд. Однако иногда последующий вызов для получения компании снова занимает несколько полных секунд.
Похожие результаты происходят и на других контроллерах, что заставляет меня думать, что это какая-то глобальная проблема конфигурации.
Таблица компании имеет несколько столбцов NVARCHAR(MAX), которые, как указывают некоторые источники, могут быть не идеальными, но модель не имеет ссылочных моделей (т. е. EF Core не нужно выполнять какие-либо соединения для построения модель компании).
Я пробовал объединить пакеты EF Core и SQL NuGet (
Код: Выделить всё
Microsoft.Data.SqlClientКод: Выделить всё
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityAsyncBehaviour", false);
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityProcessSni", false);
Код: Выделить всё
Optimize-DbContextКод: Выделить всё
return services.AddDbContext
(options =>
options.UseSqlServer(connectionString!)
.UseModel(AppDbContextModel.Instance));
Подробнее здесь: https://stackoverflow.com/questions/798 ... g-an-azure
Мобильная версия