前提:mdb链接 sql server2000数据库
目的:约100万条记录中,将一个字段的值更新为1
测试方案一:
采用更新查询 ,耗去23分13秒
Sub test()
Debug.Print "runsql开始时间:" & Now
DoCmd.OpenQuery "查询6"
Debug.Print "runsql结束时间:" & Now
MsgBox "已更新结束"
End Sub
测试方案二:
采用ADO方式更新,耗去14分钟48秒。用ADO代码打开sql server表去更新值,不是打开链接表。
结论:ADO方式比更新查询效率更高,速度更快。
Sub testa()
Dim rst1 As ADODB.Recordset
Dim strSQL As String
Debug.Print "ADO开始时间:" & Now
strConn = "ADO连接字符串"
Set rst1 = New ADODB.Recordset
strSQL = "select tbl表名称.cxID from ttbl表名称"
rst1.Open strSQL, strConn, adOpenKeyset, adLockOptimistic
DoCmd.SetWarnings False
rst1.MoveFirst
Do Until rst1.EOF
rst1("cxID") = 1
rst1.Update
rst1.MoveNext
Loop
Debug.Print "ADO结束时间:" & Now
rst1.Close
Set rst1 = Nothing
MsgBox "已更新结束"
End Sub