我用VC+ADO写了一个访问SQL2000的客户端程序
当客户端数目达到26个时,我的一个select语句执行就出现rutime error
当时是停顿了很久了,因为返回的结果有30000多条记录select * from table where type ='0' order by name请大家帮忙分析一下原因:1.是网络状况的问题?我的客户端在访问服务器的同时还要从服务器上下载大量的文件
  但是同等条件下用
  select * from table where type ='5' order by name
  这句就没有问题,这句返回的结果是1000条2.是sql server 计算负荷不了吗?客户端是频繁的调用sqlserver查询
  我用  select * from table where type ='0' 语句
  (去掉order by name,计算量会小吗?)是不是会好些?3.是返回的结果多的问题吗?
  select top 500 * from table where type ='0' order by name
  因为只有大概500是需要的,我不知道是不是30000条结果的查询完要全都传到客户端???
  这样我是不是可以返回500就可以了
小弟对sql server的性能方面还不太懂,请多多指教
谢谢大家

解决方案 »

  1.   

    1.30000条数据还可以的,我觉得主要问题可能出在你的显示上面
    2.去掉order当然会好点,关键在于你有没有在order的字段上建索引
    3.top500 * 就只返回500条记录。
      

  2.   

    我是楼主
    我的select 语句还要order by click
    click字段为点击率select top 500 * from table order by [click] desc当执行这句时尤其的慢,像死机了一样
      

  3.   

    在[click] 字段上建立索引。
      

  4.   

    >在[click] 字段上建立索引。每条click字段的值是变化的(点击率),如何建立索引?
      

  5.   

    有什么别的解决办法吗?
    我的click是int类型
      

  6.   

    1 关于runtime超时 似乎不是查询语句的问题 检查一下客户端可能的超时原因
    2 如果你每次只需要500 总量为30000 ASP里面作分页设计