随着访问遍历记录集,它随着指数的增加而减速,为什么?

时间:2013-12-09 16:54:09

标签: vba ms-access ms-access-2003 recordset

我有以下情况,并想知道它是否影响了执行速度

  • Select语句提取100,000行并将其放入DAO.recordset
  • 我们会说,记录集会一次操作5000条记录
    • 运行一些昂贵的字符串操作和功能(已经优化)
    • 将结果插入表格
    • 重复,直到记录集为空
  • 使用结果更新原始表格

随着记录集进一步进入索引,似乎程序运行速度变慢。

我知道Access一次不会将所有记录都记录到内存中,为什么这么慢呢?

1 个答案:

答案 0 :(得分:0)

我最终使用以下逻辑

从记录集中选择一小组数据
Base Query
    If not end or beginning of recordset  then
        Do while Not end of recordset
        DO CODE
        If end of recordset rerun Base Query
    end loop

这样做可以将少量数据集合到内存中,从而减少遍历数据集时的开销。这确实需要对数据库进行更多点击,但会显着缩短时间,尤其是在查询已经优化的情况下。

相关问题