Я работаю просто. NET Веб-приложение Core 3.1 на localhost. Веб-приложение работает в контейнере Docker Linux (моя операционная система - Windows 10). База данных, используемая веб-приложением (очень маленькая (60 КБ), SQLite, почти пустая (все таблицы имеют около 20 записей), для подключения к ней используется EF Core), хранится в хост-ОС и монтируется в контейнер с помощью следующей команды:
--mount type=bind,source='SomeDummyHostPath',target=/mnt/hostFolder
Проблема в том, что каждый запрос, выполняемый в DBContext, выполняется очень медленно (~ 2 с для чтения 2 строк). Пока я запускаю приложение вне контейнера Docker, все, очевидно, работает гладко (тот же запрос выполняется за ~ 1 мс).
Что странно, после вызова dbContext.Database.OpenConnectionAsync()
перед каждым вызовом DBSets EF, каждый запрос даже на Docker контейнер работает быстро (несколько миллисекунд).
Почему производительность в этом сценарии такая низкая? Есть ли способ увеличить его без явного вызова OpenConnectionAsync
перед каждым запросом?