Понятно, что SqlConnections объединены, поэтому ключевое слово using
кажется идеальным, и этот подход я всегда использовал и видел использованным.
Например ...
public List<string> MyQuery()
{
List<string> list = new List<string>();
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
// do some stuff with connection, process the resultset and fill the list.
}
return list;
}
Вопрос в следующем: с несколькими запросами к веб-странице, лучше ли каждый раз создавать соединение или делить соединение между запросами, разделяя его на единицу работы?
Производительность будет намного выше или это просто преждевременная ненужная микрооптимизация?
Действительно ли важно как можно скорее закрыть каждое соединение или лучше попытаться объединить все запросы в единицу работы?
Примером единицы работы может быть, например ...
List<string> list1, list2;
string myvalue1, string myvalue2;
using (SqlConnection conn = new SqlConnection(connection))
{
list1 = MyQuery1(conn);
list2 = MyQuery2(conn);
myvalue1 = MyQuery3(conn);
myvalue2 = MyQuery4(conn);
}
Это может произойти во время загрузки страницы, когда из базы данных должно быть получено несколько данных.