У меня есть моя бизнес-логика, реализованная в простых статических классах со статическими методами. Каждый из этих методов открывает/закрывает соединение SQL при вызове:"открыть/закрыть" SqlConnection или оставить открытым?
public static void AddSomething(string something)
{
using (SqlConnection connection = new SqlConnection("..."))
{
connection.Open();
// ...
connection.Close();
}
}
Но я думаю, что во избежание открытия и закрытия соединения сохраняет производительность. Я сделал несколько тестов времени займет слишком много назад с OleDbConnection класса (не уверен, SqlConnection), и это, безусловно, помогло работать так (насколько я помню):
//pass the connection object into the method
public static void AddSomething(string something, SqlConnection connection)
{
bool openConn = (connection.State == ConnectionState.Open);
if (!openConn)
{
connection.Open();
}
// ....
if (openConn)
{
connection.Close();
}
}
Так что вопрос - я должен выбрать метод (а) или способ (б)? Я прочитал еще один вопрос о stackoverflow о том, что объединение пулов спасло производительность для меня, мне не нужно беспокоиться вообще ...
PS. Это приложение ASP.NET - соединения существуют только во время веб-запроса. Не win-приложение или услуга.
Просто совет: используйте событие 'DbConnection.StateChange', чтобы отслеживать изменения состояния соединения (и может быть локально локально) вместо проверки свойства' DbConnection.State'. Это сэкономит вам стоимость исполнения. – decyclone
Отсутствует одна деталь, так как этот метод является частью запроса страницы. Является ли это единственным методом, который называется или он является, как я предполагал в своем ответе, один из многих методов, который вызывается в вопросе страницы, он влияет на какой ответ прав;) –
Дэвид - LOTS таких методов называются :) – Alex