Я пытаюсь увеличить производительность моего приложения. При изучении производительности запросов к базе данных я заметил, что большая часть времени вычисления в запросе идет на закрытие и удаление соединения.
Общее время запроса (в среднем) 76 мс, около 10 мс используется для открытия соединения и exeuting запроса. Другие 66 мс используются для утилизации соединения после выхода из инструкции using
. Мне было интересно, нормально ли, что для утилизации соединения используется более 85% времени вычисления. Есть ли способ уменьшить это, что значительно улучшит мою производительность?C# ODBC подключение к удалению производительность
Мой код:
public String executeScalarCommandString(String conString, OdbcCommand command)
{
//starting stopwatch here
String result = "";
using (OdbcConnection connection = new OdbcConnection(conString))
{
try
{
command.Connection = connection;
command.CommandType = CommandType.Text;
connection.Open();
object obj = command.ExecuteScalar();
if (obj != null && DBNull.Value != obj)
result = obj.ToString();
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.ToString());
}
//stop and restart stopwatch here. Avg elapsed time: 10 ms
}
//stop stopwatch here. Avg elapsed time: 76 ms
return result;
}
FYI: По нескольким причинам я использую Access Jet двигатель устаревшее.
Я планирую перейти на SQL Server, когда это возможно. Как это повлияет на мою работу?
Насколько я знаю, это связано с пулом соединений. Кроме того, меня учили, что нежелательно оставлять одно соединение, открытое во время работы. Поправьте меня если я ошибаюсь. – JeroenM
@jeroenm, если вы помните, что правильно его удаляете на конце, а база данных позволяет несколько подключений, которые превышают количество пользователей, должно быть хорошо, чтобы открыть соединение с базой данных. – ZoomVirus
Пробовал это, и это значительно повышает производительность. До сих пор не возникало никаких проблем. Благодаря! – JeroenM