我需要使用 VB6 和 MS Access 数据库处理数十万条记录。我遍历记录集并编辑每条记录。然而,这样做需要很多时间。使用 Addnew 和 Update 方法创建具有相同数量记录的数据库的速度要快得多。
如果有人向我展示任何代码示例或只是一个策略,我将不胜感激。
这是代码
Data1(1).RecordSource = "Select * from TABLE order by Field_A ASC"
Data1(1).Refresh
If Data1(1).Recordset.RecordCount > 0 Then
Data1(1).Recordset.MoveFirst
Do
Data1(1).Recordset.Edit
Data1(1).Recordset.Fields("FIELD") = Sort_Value
Data1(1).Recordset.Update
Data1(1).Recordset.MoveNext
Loop Until Data1(1).Recordset.EOF = True
End If
这真的很简单。真实的事情是,我忘了提到,计算机的硬盘不断红/写。这实际上是问题所在。在如此重的负载下,没有办法不影响性能。
我首先想到的是查询生成的记录集,记住我们有 1-2 百万条记录,导致了这个问题。我猜它位于硬盘驱动器和 RAM 中的某个临时位置。所以执行 .Edit 和 .Update 可能是首先将光标定位在正确的位置然后写入的问题。
不确定。可能会有专家告诉我一条出路。
顺便提一句。我还尝试用固定长度的循环替换 Loop Until Data1(1).Recordset.EOF = True 语句,因为我还读到,这种对 Recordset.EOF 的检查也会降低性能。
先感谢您!