【发布时间】:2009-09-30 05:46:07
【问题描述】:
我有一个多年前开发的 Delphi 4 程序,它使用 Opus DirectAccess 顺序搜索 Microsoft Access 数据库并检索所需记录。 Delphi 4 没有 ADO,所以这就是我使用 DirectAccess 的原因。
但我现在已经升级到 Delphi 2009 并将程序转换为使用 ADO。我发现通过表(大约 100,000 条记录)的循环开始时的速度与在 DirectAccess 中一样快,但随后它开始变慢,并且在通过表时变得越来越慢。基本循环是:
ArticlesTable.First;
while not Cancel and not ArticlesTable.Eof do begin
( See if the current record has criteria desired )
( If so, process the record )
ArticlesTable.Next;
end;
所以基本上,它只是使用 .Next 方法顺序处理记录。
那么为什么它会变慢,我该如何重新编码以使其不会变慢?
【问题讨论】:
标签: performance delphi ado