我有一个通过ODBC连接到PostgreS数据库的Excel工作簿。使用VBA,它可以一个接一个地执行27个SQL查询,并将每个结果集复制到另一个工作表中。
我对获得的数据感到满意,但性能中等。数据库应具有足够的资源。
我可以并行化/多线程化SQL查询吗?我已经读到,在VBA中,并行化本身是不可能的。
遵循@JNevills的建议,我将27个查询串联在一个以“;”分隔的大型查询中,总权重为54.778个字符。
执行时间处理时间:
我了解到,我正在开发一个经验丰富的数据库版本-即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] 删除。
我来说两句