EF регистрируется как служба с ограниченной областью действия, что означает создание множества коротких подключений к базе данных. Один http запрос - одно соединение. PostgreSQL не очень хорошо обрабатывает множество одновременных подключений. Вроде максимум 100. Нужен ли PgBouncer для приложений .NET Core с Entity Framework (Npgsql)? PgBouncer управляет пулом соединений. Или Npgsql может правильно управлять пулом соединений? Или это актуально только для Python и PHP? Спасибо!
Npgsql включает в себя собственный пул внутрипроцессных соединений (как это часто бывает с драйверами базы данных .NET), поэтому использование внешнего пула соединений, такого как PgBouncer, не является обязательным (хотя в некоторых сценариях это может иметь смысл для объединения соединений между несколькими клиентскими машинами). , и т. д.).
Npgsql (или, скорее, PostgreSQL) действительно не поддерживает MARS (как правило, это функция только для SQL Server, AFAIK). И это действительно никак не связано с пулом соединений: MARS — это наличие нескольких активных команд в одном и том же соединении, тогда как пул соединений — это пул самих соединений.
Спасибо! но MARS не реализован в Npgsql или это не связано с правильным управлением пулом соединений?