Как правильно настроить OdbcConnection () Open и Close с LOTS SQL вызовов - PullRequest
0 голосов
/ 19 марта 2020

У меня есть базовый сайт 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;
        }
    }
...