Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 从AdWords脚本将数据保存到Google SQL(通过JDBC)非常慢_Google Apps Script - Fatal编程技术网

Google apps script 从AdWords脚本将数据保存到Google SQL(通过JDBC)非常慢

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

我编写了一个AdWords脚本,通过JDBC将性能数据保存到Google云。 不幸的是,脚本超过了30分钟的最大运行时间,只保存了大约20%的数据。有没有办法加快速度并在30分钟运行时间限制内完成所有产品的流程

请看下面代码的主要部分。 第一段获取每个产品ID所需的数据。 我相信这部分没问题。 第二段为每个产品ID写一行。 这可能是个问题,因为每次都要为每种产品建立连接,而且需要很长时间

  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分钟内完成。我相信这是如此简单!非常感谢。