好像没什么地方可以做update了,除了硬件吧

解决方案 »

  1.   

    用datediff日期比較函數試試。
      

  2.   

    语句没有再优化的余地了.如果你经常做这种查询,将date设置成聚集索引.
      

  3.   

    我还遇到这样的问题,在 查询分析器里declare @startdate as datetime
    declare @enddate as datetimeset @startdate=cast('2004-3-20'  as datetime)
    set @enddate=cast('2004-3-28'  as datetime)
    select sum(field1) aa,sum(field2) bb from Table2 where date>=@startdate and date<=@enddate 用上面的查询要慢
    而用下面的要快些,如何解决?select sum(field1) aa,sum(field2) bb from Table2 where date>='2004-3-20' and date<='2004-3-28' 
      

  4.   

    可以这样解决,如果你不怕麻烦。
    将第一个表查出来的内容,先放到一个临时表里面,然后用这个临时表和另一个表UNION。
    我以前试过这种临时表的用法,速度会快很多。我的是两个表(各1000多万条)
      

  5.   

    还有,游标是最最最慢的一种处理方法,在SQL里面,我经常用批量更新,临时表,多个SELECT语句来代替游标。
    对于游标的态度是,能不用则不用,实在没办法了才用。
    因为它的效率和一般SQL语句是几百倍甚至几千倍的关系。
      

  6.   

    用between 比用大於小於要快
    建過了索引,應該速度不會怎麼慢,
    除非索引文件損壞,或數據庫負荷過重,