使用vb+SQL2000做一张统计表,表格每一单元都要进行计算,速度很慢(3-4)分钟,每个sql语句都是 select count(*)...where...,连接了2-3个表,where子句很复杂,已经使用了存储过程、加了索引还是慢,请问如何改进(推荐这方面的书也可以)

解决方案 »

  1.   

    select count(*)
    改为
    select count(1)

    select count(主键)
      

  2.   

    基本上每一个表格(40列100行)计算条件都不一样,有40个条件(列),项目(行)倒是一个字段,但一个项目可对应一个字段的多个值,累加的项很少;
    另外,
    我已经用select count(1)了
      

  3.   

    如果计算量太大无法再优化的话,你可以把计算报表的部分做成COM+组件,排队调用,异步执行,操作系统会选择一个适当的时机来处理。用外部程序来监视处理进度.