Пул соединений приложений во многом сделает этот вопрос неактуальным, так как пулы приложений c # оптимизированы для нескольких вызовов одной и той же базы данных.
Тем не менее, то, что я делаю, соответствует следующему правилу:
Если вы можете открыть соединение и затем выполнить несколько операций, используя синтаксис «using»:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Do work here; connection closed on following line.
}
Затем оставьте соединение открытым и выполните все операции.
Если, однако, каждая запись обрабатывается, а затем сохраняется таким образом, что вам нужно открывать новое соединение в каждой точке, не беспокойтесь слишком много. Вы по-прежнему будете отлично работать с пулами соединений.
Из MSDN:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx
Для развертывания высокопроизводительных приложений необходимо использовать пул соединений. Когда вы используете поставщик данных .NET Framework для SQL Server, вам не нужно включать пул соединений, потому что поставщик управляет этим автоматически, хотя вы можете изменить некоторые параметры. Для получения дополнительной информации см. Пул соединений с SQL Server (ADO.NET).
Даже если ваше соединение не является SQL-соединением, встроенные поставщики соединений для других источников ведут себя аналогичным образом.