配置为:
C733超C880.
256+56M RAM
Win 2k Server样品表:
28个字段,计算字段3个,Lookup方式,两个表(厂商,种类), 一个有近5000条记录,一个近50条记录,Delphi界面用了DBGridEh一个,DBEditEh,DBCombom若干...全部记录有45000条(Lookup的两上表分别为5000条和50条)我全部打开时,用了12-20秒。执行top 1000约为7-10秒...能否再进行优化?在ADOQurey 方面如何优化?

解决方案 »

  1.   

    是否可以加上索引试试呢?
    显示45000确实够access受的了吧
      

  2.   

    TO pazee(耙子):
    >>优化?!你同时显示45000这已经非常变态了。谢谢你的提醒。但我不知道该怎样解决空上"同时显示45000这已经非常变态了。"的问题。我曾提过分页显示。可是被老板骂了一顿,说这是在做软件,不是在写网页。另外,搜索时总该在这45000条记录中搜索吧?如果搜索2-3个字段,慢得要死,可能要50秒或更久...按正常的情况来说,我上面的速度是否有问题?是不是我设计方面(数据库,程序)的问题?
      

  3.   

    最好使用动态生成SQL语句方式,将查询后的结果显示在dbGrid中,不要一开始就load那么多数据,也不要用那个lookup什么的,手工写代码,用recordSet的Filter进行过滤,
    这样数据应该显示很快,说实话,你的Access中数据不算多
    我的Access文件已经300MB了。
      

  4.   

    TO: ttjacky(豆豆糖)
    Access的问题不是文件大,我这里700M但是只有10000记录以下,速度还是不错的。连接Access可以考虑使用专用连接控件DiamondAccess.
    我做过一个比较ADO插入一条记录14MS,DiamondAccess是1.5MS.
    大量查询数据的操作没有试过。不知道明显不。
      

  5.   

    TO pukerno3
    >>我这里700M但是只有10000记录以下,
    你是不是放了图片之类的?还是你没有压缩数据库?TO: ttjacky(豆豆糖)
    我的SQL也是动态生成的,只是我这个系统中有这样一个功能:显示所有的记录。所以才有了那个。
    不过搜索起来也很慢(用SQL搜索)。
    上面的说的Lookup是指跟计算字段一样的Lookup字段,而非查找的Lookup.
    谁能回答我的这个问题?
    >>按正常的情况来说,我上面的速度是否有问题?是不是我设计方面(数据库,程序)的问题?
      

  6.   

    你的编程思路不能按vpp那样,他本身是一种数据库管理系统,所以不管数据多大,打开一个表的速度都会很快,但是ado本来并不是为了访问桌面数据库而开发的接口。
    如果你想整个表都能较快的显示,建议你用accesss本身的接口dao,保证满足你的要求。
    否则那只能按需要查询提取部分数据。
      

  7.   

    TO : pukerno3(飞天) 你所说的 DiamonAccess 控件,在哪里有???谢谢。
    性能如此,很想试一试哟。
      

  8.   

    可以肯定的说跟硬件毫无关系。李维的《delphi5分布式……》中好像有介绍这个。就是当你显示的时候才从数据库上下数据。
    如你有5000条记录。但你实际上显示在屏幕上只是一小部分。查查这本书,具体我也忘了。