在sql2000中,数据已经超过百万,当报表查询时间超过一个月以上时,会很慢.
象这种情况,各位觉得应该从哪些方面提高一下效率?谢谢!

解决方案 »

  1.   

    有很多种方法优化:
    1、对于表关联的关键字段建立索引,可以加快查询速度;
    2、优化SQL的写法;
    3、建议把SQL语句放在存储过程里,因为存储过程不需要每次都重新编译,速度比sql快;
    4、如果报表的数据相对固定,建议建一个存报表的表,这样不需要每次都从头生成报表,只需要从表中读出来,做一下格式转换即可,显然这样速度会提高非常多,唯一的缺点是灵活性比较差;
    5、如楼上所言,第4点做统计时可以放在作业里,当深夜DB Server相对空闲的时候,来生成报表数据。
      

  2.   

    这样的好处,确实是代码好看很多...事实上,在select中,它也是要写入临时空间的,你看一些比较长的语句,在查询分析器中运行的时候,虽然只有一条语句,在查询结果时,也会出现提示(所影响的行数为 14 行)
    (所影响的行数为 7 行)
    (所影响的行数为 14 行)我想这之间的差别应该不是很大,如果表的数据量很大的话,应该有所出入..