一个表二十几个字段一共右7k多条数据
我在局域网上查询(非SQL服务器安装机器)使用SQL的查询分析器
select abc from xxx 需要2s
select * from xxx 需要7s
怎么会这么慢啊
机器2core 1.2G 512M内存

解决方案 »

  1.   

    有索引的
    我主要的目的是在客户端上(VB+ADO)
    查询表中个一个字段abc
    然后遍历所有记录把字段内容添加到一个combox里面
    这里有个问题,如果rec.cursorlocation设置为aduseclient
    查询时间特别长
    如果设置为aduseserver查询时间就缩短不少但是在遍历记录时候的
    rec.movenext所消耗的总时间就特别长了。
    如何才能让这个过程需要时间缩短?急用,大家帮帮忙
      

  2.   

    在服务器上执行时间使用SQL的查询分析器几乎不需要时间
      

  3.   

    select abc from xxx 需要2s 
    select * from xxx 需要7s 据我了解,好像是因为SQL内部机制问题。当你确定一个字段的时候,它查询的速度会上升。
    比如:
    xxx表中有a,b,c三个字段。select a,b,c from xxx
    select * from xxx
    以上两个SQL文检索的数据是一样的,但是执行的速度是有差别的。自己可以去试验一下。
      

  4.   

    说得有道理,微软专家也是这样说的,但在只有7K多条的表中做查询,还是慢得很啊,原因是楼主计算机的内存太小了,sql实际使用的内存就更小,你给SQL分配1G内存,速度肯定会飞上天的,当然内存再多对速度提升的贡献率就有限了.
      

  5.   

    如果客户端直接连到数据库跑SQL返回7k条记录怎么优化也快不到哪儿去,你可以试试在服务器上跑SQL然后把结果打包传给客户端
      

  6.   

    应该采取SQL语句分页方式 而不是ADODB自身分页功能
      

  7.   

    这里需要一个抉择:Client 游标还是 Server 游标。Client 初次查询慢,以后就很快。如果你可以在后台将主要的记录集查询回来,并且客户端对记录集有极其密集的访问,这是一个不错的选择。但是记住,它是以占用网络带宽为代价的。如果你的众多客户端都这样做,结果也是灾难性的。Server 游标是 ADO 的缺省设置,显然是微软推荐的。它对资源的损耗最小。代价是每一次查询都要在网络上传送数据。如果客户端上的查询是偶发性的,这样做应该比较合理。实际上,网络数据库应用设计,一定要考虑网络传输负载。