Во время загрузки страницы ASP.NET я открываю и закрываю несколько соединений System.Data.SqlClient.SqlConnections внутри нескольких элементов управления, содержащихся на странице. Я подумал, что было бы неплохо вместо этого создать «пул» соединений и при открытии соединения проверить, совпадает ли строка соединения со строкой открытого соединения в пуле, и вернуть это соединение. Я ожидал увидеть разницу во времени загрузки страницы, но не заметил никаких изменений. Я знаю, что с PHP, если вы попытаетесь открыть новое соединение со строкой соединения, которая уже использовалась в этом запросе страницы, он не будет пытаться открыть новое соединение и вместо этого вернет существующее открытое соединение. Верно ли это для .NET?






Пул соединений - важная функция ADO.NET.
Прочтите этот Статья MSDN или некоторые другие ресурсы, доступные в сети, например этот Сообщение блога
Да, именно так в ADO.NET работает пул соединений.
Когда вы вызываете Open() в экземпляре Connection, он не обязательно открывает соединение. Он выбирает открытое соединение из пула, соответствующее строке соединения. Close() освобождает соединение обратно в пул.