У меня есть программа на C++, которая вставляет около миллиона записей в базу данных MS Access с помощью OLEDBConnection. Для этого я запускал запрос INSERT INTO
миллионы раз, чтобы вставить записи, что занимает довольно много времени.
Данные генерируются в программе в виде массива. Будет ли это каким-либо другим способом загрузки данных в базу данных за один шаг для повышения производительности?
Спасибо!
Цикл, который я использую для вставки записей в настоящее время
for (int i = 0; i < populationSize; i++){
insertSQL = "INSERT INTO [" + pTableName + "] (" + columnsName + ") VALUES (" + columnsValue[i] + ");";`
outputDBConn->runSQLEdit(insertSQL);
}
Метод, выполняющий SQL-запрос
void DBConnector::runSQLEdit(String^ query){
SQLCMD = gcnew OleDbCommand( query, dbConnection );
SQLCMD->CommandTimeout = 30;
dbConnection->Open();
SQLCMD->ExecuteNonQuery();
dbConnection->Close();
}