GoogleScript 将 JDBC ResultSet 加载到 Array 中非常慢/如何优化?

Isa*_*aac 5 optimization performance loops jdbc google-apps-script

我在 GoogleScript 上使用 JDBC 与 GoogleCloud MySQL 进行通信。

我的表有 24 列,将 1000 行 ResultSet 加载到数组中大约需要 30 秒。下面代码块中的循环占用了大部分时间。

我是否犯了任何错误导致它变得如此缓慢?有没有办法优化这个?有更好的方法吗?

var results = stmt.executeQuery(query);

  results.last();
  var nrow = results.getRow()
  results.first();
  var ncol = results.getMetaData().getColumnCount();

  var dat = new Array(nrow);
  for (var i = 0; i<nrow; i++){
    dat[i]=new Array(ncol);
    for(var j = 0; j<ncol; j++){
      dat[i][j] = results.getString(j+1);
    }
    results.next();
  }
Run Code Online (Sandbox Code Playgroud)

小智 6

遇到了同样的问题,意识到是新的 V8 运行时迁移引起的。我回到旧的,它起作用了,它变得更快了。我真的不知道为什么它不能很好地与新版本一起使用......它应该会更好=/

无论如何,您可以在菜单“运行”>“禁用由 V8 提供支持的新应用程序脚本”中更改回旧的 Rhino 版本

希望这可以帮助。祝你好运!