gpt4 book ai didi

sql - 优化 SQL SELECT 进行 4000 次搜索,通过 VBA 进入 Excel

转载 作者:行者123 更新时间:2023-12-04 21:26:37 25 4
gpt4 key购买 nike

如何通过批处理或其他技术优化速度?它是一个 20MB Access2003 数据库,我从 Excel 2003 VBA 中搜索。

我有我的 Access 表键控(自动编号),所以我虽然这将提供智能非线性搜索,如二进制搜索。目前从 147k 条记录的表中搜索 4000 个值需要 4.2 分钟。

我在搜索中找到了这个:

The problem with a straight SELECT on the SQL Server side is that the DB will do a linear search through the table unless the column you're working with has an index on it; then the DB can be smarter.StackOverflow SQL C# Binary Search Question



这是真的吗?它是否也适用于 Access2003 DB?

VBA 代码,示例:
    Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection 'open the connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Open "PNdb2003.mdb"
End With

'define the record set
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient 'for smaller datasets that fit into RAM

For Each myVariant In Selection.Cells
strSearchText = myVariant

Dim sSQL As String
sSQL = "SELECT Key FROM [MasterTable] WHERE PN=""" & strSearchText & """"

rst.Open Source:=sSQL, ActiveConnection:=cnn, CursorType:=adOpenStatic, LockType:=adLockOptimistic

Cells(myVariant.Row, 7).CopyFromRecordset rst

rst.Close
Next myVariant

cnn.Close

最佳答案

当您声明“Access Table Keyed”时,这与 PN 字段是否相同?如果不是,我怀疑不是,那么在 PN 字段上创建索引将大大提高性能。您还应该对您进行任何搜索的任何其他字段执行此操作。即使索引 bool 字段也可以在搜索中产生显着差异,但需要进行前后比较。

关于sql - 优化 SQL SELECT 进行 4000 次搜索,通过 VBA 进入 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1898780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com