我需要使用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
Run Code Online (Sandbox Code Playgroud)
这真的很简单.真实的是,我忘了提到,计算机的硬盘驱动器不断发出红色/写入.这实际上是问题所在.如此沉重的负载,无法不影响性能.
我首先想到的是查询生成的记录集,请记住我们有1-2万条记录,导致这个问题.我想它存在于硬盘驱动器和RAM中的一些临时位置.因此,执行.Edit和.Update可能是首先将光标定位在正确位置然后写入的问题.
不确定.可能会有一位专家向我展示出一条出路.
顺便说一句.我还尝试用固定长度循环替换Loop Until Data1(1).Recordset.EOF = True语句,因为我也读过,这次检查Recordset.EOF也会降低性能.
先感谢您!