首页 > 解决方案 > 性能不佳的 SQL 语句

问题描述

我正在尝试在 Excel VBA 项目中使用 SQL 语句来根据特定的 SQL 语句获取表条目的数量。然后将返回值(整数)存储在一个数组中。目前,一条语句需要将近 1 秒的时间来执行。由于我有超过 10000 个这样的查询,我想提高性能:

我的主子

Dim x As Integer: x = 0
For i = 0 To 10000
  x = RunSQLQuery(mySQLQuery)
Next

建立 SQL 连接的函数

Function SetSQLConnection(cn As Object) As Variant
    
        'Connect to Workbook
    Set cn = CreateObject("ADODB.Connection")
    With cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _
        "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
        .Open
    End With

End Function

借助 SQL 查询获取整数的函数(该函数中的“.Execute”是慢速部分)

Function RunSQLQuery(mySQLString) As Integer
    Dim rs As Object
    Set rs = sqlObject.Execute(mySQLString)
    RunSQLQuery = rs(0)
End Function

标签: sqlexcelvbaperformance

解决方案


推荐阅读