Google apps script 从AdWords脚本将数据保存到Google SQL(通过JDBC)非常慢
我编写了一个AdWords脚本,通过JDBC将性能数据保存到Google云。 不幸的是,脚本超过了30分钟的最大运行时间,只保存了大约20%的数据。有没有办法加快速度并在30分钟运行时间限制内完成所有产品的流程 请看下面代码的主要部分。 第一段获取每个产品ID所需的数据。 我相信这部分没问题。 第二段为每个产品ID写一行。 这可能是个问题,因为每次都要为每种产品建立连接,而且需要很长时间Google apps script 从AdWords脚本将数据保存到Google SQL(通过JDBC)非常慢,google-apps-script,Google Apps Script,我编写了一个AdWords脚本,通过JDBC将性能数据保存到Google云。 不幸的是,脚本超过了30分钟的最大运行时间,只保存了大约20%的数据。有没有办法加快速度并在30分钟运行时间限制内完成所有产品的流程 请看下面代码的主要部分。 第一段获取每个产品ID所需的数据。 我相信这部分没问题。 第二段为每个产品ID写一行。 这可能是个问题,因为每次都要为每种产品建立连接,而且需要很长时间 while (productGroups.hasNext()) { var produc
while (productGroups.hasNext()) {
var productGroup = productGroups.next();
var productItemId = productGroup.asItemId();
var maxCpc = productItemId.getMaxCpc();
var itemId = productItemId.getValue();
var stats = productItemId.getStatsFor('YESTERDAY');
var averageCpc = stats.getAverageCpc();
var clicks = stats.getClicks();
var impressions = stats.getImpressions();
var conversions = stats.getConversions();
var cost = stats.getCost();
if (itemId || maxCpc) {
var conn = Jdbc.getCloudSqlConnection(dbUrl, user, userPwd); //SQL Connetion starts here
var stmt = conn.prepareStatement('INSERT INTO table1 '
+ '(itemid, date, clicks, impressions, cpc, averageCpc, cost, conversions) values (?, ?, ?, ?, ?, ?, ?, ?)'); //End
stmt.setString(1, itemId);
stmt.setString(2, now);
stmt.setString(3, clicks);
stmt.setString(4, impressions);
stmt.setString(5, maxCpc);
stmt.setString(6, averageCpc);
stmt.setString(7, cost);
stmt.setString(8, conversions);
stmt.execute();
}
}
提前谢谢你 简单的解决方案是不在循环中定义连接。如果你知道这是不好的和低效的,你为什么还要这样做?在循环之前先做。此外,我确信有一种方法可以一次发送多条语句,例如“批量插入”,它起作用了!我将连接的第一行放在循环之外,脚本在13分钟内完成。我相信这是如此简单!非常感谢。