循环处理的速度为什么会越来越慢?

白雲 2008-04-21 01:57:17
是用Delphi + ADOQuery
ADOQuery通过OPEN从数据库取出数据后.
循环对每条记录进行处理
明明是在同一个循环语句里,为什么会越来越慢呢?

而且是很明显的:
从数据库读了10万条记录.
然后循环时,
第一秒里能处理6~7千条数据
第二秒里只处理了2~3千条
到最后.要用2~3秒才能处理完1千条数据..

这可能是什么原因导致的呢?
...全文
347 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
白雲 2008-04-21
  • 打赏
  • 举报
回复
还有这种设置..无语一记.

刚好在测试通过ADOQuery.Recordset来取数据.
不用ADOQuery.Next而用ADOQuery1.Recordset.MoveNext
直接去访问RecordSet来取数据时,速度就很快.

原来设置了
ADOQuery.CacheSize := 100;
ADOQuery.DisableControls;
后和直接访问RecordSet一样的速度..

呵呵..这问题还真郁闷..解决了.
internetroot 2008-04-21
  • 打赏
  • 举报
回复
直接用SQL语句处理一般都快些
blazingfire 2008-04-21
  • 打赏
  • 举报
回复
ADOQuery.CacheSize := 100;
ADOQuery.DisableControl;
白雲 2008-04-21
  • 打赏
  • 举报
回复
ADOQuery的Next函数本身的问题?
白雲 2008-04-21
  • 打赏
  • 举报
回复
应该不会吧..
我甚至把所有做数据处理的语句都去掉了.
循环里只剩下输出调试信息的语句.
结果也还是一样.
喝口水 2008-04-21
  • 打赏
  • 举报
回复
是不是有内存没有释放

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧