У меня есть базовый сайт ASP. NET, который использует процесс миграции, который считывает базу данных Access mdb в базу данных SQL Server с множеством таблиц и множеством строк. Для каждой таблицы и для каждой части каждой таблицы я вызываю этот метод для чтения и заполнения DataTable
. Обычно тысячи раз за файл / импорт. Из того, что я понимаю, это будет использовать пул соединений по умолчанию, верно? Это лучший способ для производительности SQL?
Я попытался переместить conn
в переменную класса и open
в свой конструктор, и на моем компьютере разработчика оказалось, что мое время миграции сократилось наполовину, но на сервере prod это изменение вызвало мой AppPool каждый раз / вздох.
private static DataTable Query(string sql)
{
DataTable dt = new DataTable();
using (OdbcConnection conn = new OdbcConnection(_connectionString))
{
conn.Open();
OdbcCommand command = new OdbcCommand(sql, conn);
OdbcDataReader reader = command.ExecuteReader();
dt.Load(reader);
reader.Close();
conn.Close();
return dt;
}
}