Пул подключений для расширенного клиента, напрямую обращающегося к базе данных - PullRequest
0 голосов
/ 24 июня 2009

У меня есть устаревшее приложение WinForms, которое подключается напрямую к базе данных SQL Server 2005.

Есть много клиентских приложений, открытых одновременно (несколько сотен), поэтому я хочу минимизировать количество подключений к базе данных.

Я могу разорвать соединения рано и часто, и сохранить значение тайм-аута низким.

Есть ли еще что-то, что я должен рассмотреть?

Ответы [ 2 ]

1 голос
/ 24 июня 2009

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

Удалите ваше соединение как можно скорее.

Вы можете установить максимальный размер пула в самой строке соединения, чтобы определить максимальное количество активных соединений.

0 голосов
/ 24 июня 2009

Вы должны рассмотреть возможность введения пула соединений. В мире Java вы обычно получаете это «бесплатно» с сервером приложений. Однако в любом случае это будет слишком много, если все, что вам нужно, это пул соединений с базой данных.

Общая идея состоит в том, чтобы один процесс (на сервере) открывал ограниченное количество параллельных подключений к базе данных. Вы бы делали это в каком-то «прокси» -приложении (своего рода мини-сервере приложений) и повторно использовали бы дорогое создание соединений с базой данных для входящих соединений с вашим приложением, которые дешевле создавать и выбрасывать.

Конечно, это требует некоторых изменений и на стороне клиента, поэтому, возможно, это не идеальное решение, если вы не можете принять это как предварительное условие.

...