大家好:
    我用的数据库是SQL Server2000,语言是Delphi6,库中的一个表的记录数接近一百万条(以后还会增加),我查询、统计时写了如下语句:    with ADOQuery1 do
       begin
         close;
         sql.clear;
         sql.add('select count(*) from Table1 where Tyear=2003');
         open;
       end;
    可是运行程序的时候点击button后等待很长时间结果出现“数据超时”,无法继续进行下去,请问各位大侠如何解决?
    分不够我可以再加!

解决方案 »

  1.   

    我原来 2000万的数据在sqlserver上没索引跑在 PIII 733的机器上也没超时呀!按照你的情况,你最好能加一个索引,按照TYear索引,不然他要遍历整个表,如果服务器性能不好,肯定慢死了。
      

  2.   

    我个人意见:
    1:cachesize 设为适当大小,如20
    2:cursortypw设为适当值
    3:maxrecords设为适当值,如统计时可设为1
    4:当然数据库建立索引是很重要的。
      

  3.   

    在数据库中建立一个索引  按照TYear索引
    查询速度会提高很多的
      

  4.   

    楼上有几位开什么玩笑,照楼主的情况,他的数据可能按年分段,每年都有很多数据的,
    如果Tyear相同的数据超过20%以上就没什么明显的速度提高了,相反还会降低insert,update的
    性能.********不是什么字段都可以建索引的*********
      

  5.   

    formatdatetime('yyyy-mm-dd hh:mm:ss',now)
    formatdatetime('yy/MM/dd ',date)
    formatdatetime('yy-MM-dd ',date)