现在再做一个程序,操作的数据由1700多万条,是foxpro的数据库,进行连接用的是odbc,在用单步调试时,发现,其他语句执行得还不错,但一到query1.open时
(前面的是query1.sql.add('select * from 表 where id='常值'')),这里执行就相当慢,我自己在foxpro中试过,同样的语句,马上就有结果反馈,请各位高人,出手指点,祝大家新年快乐!

解决方案 »

  1.   

    sql.add()僅僅是賦值,不會執行很慢的.相反在open,first,next會有慢的表現.
      

  2.   

    这个与索引是没有关系的.只是在TStringList里加一了一行而矣,怎么会慢呢?窃以为,这个问题都不应该放到DATABASE这里来问.
      

  3.   

    结果集返回时间和结果集的大小成正比,如果你的SQL,select * from where.....返回的数据庞大,当然花时间,而且很多服务器如SYBASE, MS SQL都不允许客户中途放弃获取数据集的操作,所以,尽量避免庞大的数据集的获取....不然,时间的代价是一定么付出的.不过可以考虑提升服务器性能,如:
    分配多一些内存空间给服务器
    如果用BDE,可以分配多一点的缓存