我可以在Excel VBA中并行化SQL查询吗?

毛毛虫

我有一个通过ODBC连接到PostgreS数据库的Excel工作簿。使用VBA,它可以一个接一个地执行27个SQL查询,并将每个结果集复制到另一个工作表中。

我对获得的数据感到满意,但性能中等。数据库应具有足够的资源。

我可以并行化/多线程化SQL查询吗?我已经读到,在VBA中,并行化本身是不可能的。

毛毛虫

遵循@JNevills的建议,我将27个查询串联在一个以“;”分隔的大型查询中,总权重为54.778个字符。

执行时间处理时间:

  • 依次27个查询:45秒
  • 1个大型查询:30秒

我了解到,我正在开发一个经验丰富的数据库版本-即PostgreS 9.3.11。

即使我拥有更多的内核,也不会为使用此版本而烦恼。如果我在Squirrel中执行大型查询,则大约需要20秒。

使用最新的数据库,性能可能会更好。

解决方案示意图

rs.Open sqlQuery, conn

for i = 1 to 27
   call writeRecordSetToSheet(rs, sheetname)
   Set rs = rs.NextRecordset  '<- magic line for accessing the other 26 recordsets
next i 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在VBA for Excel中创建跳转表吗?

我可以在Matlab中测量并行化带来的加速吗?

我可以并行化排序吗?

我可以告诉 Excel VBA 在我的代码中搜索一个句子吗?

我可以在Excel中显示链接到形状的数据吗?

我可以将工作表用作Excel中的函数吗?

我可以在Excel中仅绘制/过滤每天的峰值吗

我可以在 Excel 中的数组公式中使用逻辑 AND 吗?

我可以在文本框中设置变量的名称吗?VBA Excel

我可以在 vba excel 中设置动态范围以在过滤器中使用吗

我可以用Excel中的VBA保存功能替换“保存”或“另存为”按钮吗?

我可以在Excel VBA中执行期间调整For Loop的大小吗?

我可以使用OTL并行化嵌套循环吗?

我们可以使用执行 Sql 任务截断 Excel 工作表中的数据吗?

我可以阻止excel完全格式化我的文本吗?

我可以使用excel更新表上的数据吗?

我可以用密码保护Excel宏吗?

完成计算后,我可以发出Excel哔声吗?

我可以在Excel表中使用特殊粘贴的链接吗?

我可以在Excel上应用条件输入吗?

我可以使用SQL从其他Excel文件构建Excel数据表吗?

我可以在查询中声明变量吗?

在Excel中,如果我的公式返回#NA,我可以提供“默认值”吗?

我可以通过什么功能来确定Excel中的分数?

我可以停止在snakefile中并行执行的规则吗

我可以使Excel VBA宏可用于所有工作簿吗?

我可以更快地制作这个宏/代码吗?(Excel VBA 重复查找器)

Excel VBA-我可以在另一个工作簿上处理数据吗?

我可以从32位版本的Excel VBA调用64位DLL吗?