【发布时间】:2014-03-03 07:13:47
【问题描述】:
我知道 VB6 有点过时,但那是我继承的那一刻的应用程序。
我必须根据数组的结果对访问表进行更新。
该数组包含一个双精度数和要更新的记录的 id。
问题是有 120,000 条记录需要更新,但在一次测试中,仅对 374 条记录运行它就需要 60 秒。
这是我的更新代码
Dim oCon As New ADODB.Connection
Dim oRs As New ADODB.Recordset
Dim string3 As String
oCon.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path &"\hhis.mdb;Pwd=/1245;"
oCon.BeginTrans
For i = 0 To maxnumberofrecords - 1
string3 = "UPDATE YourRatings SET yourRatings=" & YourTotalRatingsAll(i) & " Where thisID = " & thisID(i) & ";"
oRs.Open string3, oCon, adOpenStatic, adLockOptimistic
Next i
oCon.CommitTrans
oCon.Close
我根据我读过的其他一些文章添加了“CommitTrans”,但这似乎并没有提高速度。
另一个问题是我将不得不运行另一个查询来将最高 (1) 排名到最低 (374) 并再次更新数据库...尽管我可能可以对数组做一些事情来添加该列同时。
这对我来说似乎很慢,尤其是当其他帖子在 14 秒内提到 200000 条记录时。
我是不是错过了什么? 从文本文件加载会更快吗?
提前感谢您的帮助。
恶意
【问题讨论】: