Пул соединений в .NET / SQL Server?

Необходимо или выгодно писать собственный код пула соединений при разработке приложений в .NET с базой данных SQL Server? Я знаю, что ADO.NET дает вам возможность включить / отключить пул соединений - означает ли это, что он встроен в структуру, и мне не нужно об этом беспокоиться? Почему люди говорят о написании собственного программного обеспечения для пула соединений и чем оно отличается от того, что встроено в ADO.NET?

Ответов (5)

Решение

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

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

Я не настоящий эксперт в этом вопросе, но я знаю, что у ADO.NET есть своя собственная система пула соединений, и пока я ее использую, она работала безупречно.

Моя реакция была бы такой, что нет смысла изобретать велосипед ... Просто убедитесь, что вы закрыли свои связи, когда закончите с ними, и все будет хорошо!

Я надеюсь, что кто-то еще может дать вам еще несколько твердых ответов!

Насколько я понимаю, пул соединений автоматически обрабатывается для вас при использовании объекта SqlConnection. Это специально разработано для работы с MSSQL и обеспечит эффективное объединение соединений. Вам просто нужно убедиться, что вы закрыли их, когда закончите с ними (и убедитесь, что они утилизированы).

Я никогда не слышал о людях, которым нужно самому кататься. Но я признаю, что мой опыт здесь ограничен.

С появлением ADO.Net и более новой версии пул соединений SQL обрабатывается на двух уровнях, во-первых, через сам ADO.Net, а во-вторых, напрямую через SQL Server 2005/2008, что устраняет необходимость в настраиваемом пуле соединений.

Мне сообщили, что подобная поддержка планируется или реализована в Oracle и MySQL из-за интереса.