У меня есть один большой импорт листа google, над которым я работаю, разбив его на более мелкие куски для упрощения обработки, и это работало нормально до недавнего времени, когда количество записей значительно выросло, отбрасывая мой сценарий. Лист содержит около 40 нечетных столбцов, и каждый выполняемый пакет ограничен 500 записями, а время обработки этих записей составляет ~ 4 минуты. Я изучаю различные варианты, где я мог бы сократить время выполнения. Соединение закрывается, если выполнение будет выполняться даже более часа. Моя идея состоит в том, чтобы оптимизировать этот код, чтобы он не занимал слишком много времени для выполнения каждого пакета. Есть ли более быстрый способ приблизиться к этой массовой загрузке в jdb c.
var address = 'database_IP_address';
var rootPwd = 'root_password';
var user = 'user_name';
var userPwd = 'user_password';
var db = 'database_name';
var root = 'root';
var instanceUrl = 'jdbc:mysql://' + address;
var dbUrl = instanceUrl + '/' + db;
function googleSheetsToMySQL() {
var RecId;
var Code;
var ProductDescription;
var Price;
var dbconnection = Jdbc.getConnection(dbUrl, root, rootPwd);
var statement = dbconnection.createStatement();
var googlesheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('product');
var data = googlesheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
RecId = data[i][0];
Code = data[i][1];
ProductDescription = data[i][2];
Price = data[i][3];
var sql = "{call [dbo].[sp_googlesheetstotable](?,?,?,?)}";
statement = dbconnection.prepareCall(sql);
statement.setString(1, RecId);
statement.setString(2, Code);
statement.setString(3, ProductDescription);
statement.setString(4, Price);
statement.executeUpdate();
}
statement.close();
dbconnection.close();
}