使用 ADO 和 SQL 加速从表中查询

Posted

技术标签:

【中文标题】使用 ADO 和 SQL 加速从表中查询【英文标题】:Speed up query from table using ADO and SQL 【发布时间】:2018-10-09 20:55:14 【问题描述】:

我有一个 Excel 宏,它使用 ADO 和 SQL 从另一个文件中读取数据。 它运行良好,但时间太长

这是连接到另一个文件的代码部分。

With conn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .Mode = adModeRead
    .CursorLocation = adUseClient
    .Properties("Data Source") = "W:\Store.xlsm"
    .Properties("Extended Properties") = "Excel 12.0 Macro;HDR=Yes;IMEX=1"
    .Open OpenForwardOnly, LockReadOnly, CmdText
End With

Set rs = conn.Execute("SELECT `main$`.`" & MasterField & "`  FROM `main$` `main$` WHERE `main$`.Num= '" & Hyperion & "'")

Master = rs.Fields(0).Value

谢谢!

【问题讨论】:

需要多长时间,您预计需要多长时间? 大概需要10秒,3秒以下会比较高效。 【参考方案1】:

考虑使用文件的 .xlsb 副本。

【讨论】:

。谢谢。没有任何区别。只有文件大小发生了变化。 另一件事,请在此处查看有关数据类型、标题和转换的答案 - ***.com/questions/3232281/… 也没有区别

以上是关于使用 ADO 和 SQL 加速从表中查询的主要内容,如果未能解决你的问题,请参考以下文章

使用多个表和连接加速 SQL 搜索

如何使用多个 JOIN 加速 SQL 查询?

如何编写 SQL 查询以从表中提取 50% 的记录?

使用嵌套查询从表列表/多个表中选择 - MS SQL

SQL Server:根据来自其他 2 个表的子查询从表中选择

SQL查询:从表中删除除最新N之外的所有记录?