VBA - ускорение загрузки данных в SQL из VBA - PullRequest
0 голосов
/ 27 ноября 2018

Я использую макрос, который ежедневно записывает данные в таблицу SQL.Проблема в том, что обычно у меня есть более 300 тыс. Строк для загрузки и макрос работает очень медленно (более 60 минут).Есть ли способ ускорить этот процесс?Ниже приведена часть кода, где Макрос провел большую часть времени:

 tb = "[Table_Test]"
    Set Pos = ThisWorkbook.Sheets(“Sheet1”)
    For i = 3 To last_row

        query = "INSERT INTO " & tb & " ([DATE],[POSITION])"
        query2 = " VALUES " & "('" & Format(CDate(Pos.Cells(i, 1)), "yyyy-mm-dd") & "'" & ", '" & Pos.Cells(i, 2) & "'" &");"
        query = query & query2
        Execute_SQL_218 (query)
        query = False
        Application.StatusBar = "Uploading Data To SQL..." & i
        DoEvents
    Next i

1 Ответ

0 голосов
/ 28 ноября 2018

Проблема в том, что этот цикл отправляет данные на сервер построчно и запускает запрос для каждого из них.Вам необходимо отправить все это как один набор записей и вставить его с одним запросом.
Поскольку вы не указали тип базы данных SQL, я могу дать вам только одно предложение для Microsoft SQL Server: сначала экспортируйте свой набор записей вЗатем в файле .csv вместо выполнения запроса «INSERT INTO» выполните BULK INSERT .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...