不了解你的业务,但给你一些小建议。
1.可尝试把这条语句,分拆成多条语句来实现。
2.有些功能不一定全要在DB中完成,可以放到Application中实现。

解决方案 »

  1.   

    恩 想过拆语句  还在找相应的拆法另外还想过把所有join进来的表合成一张临时表 然后在sql文里join临时表 不知道效果怎么样
      

  2.   

    cast(d.DivisionName as varbinary(8000))
    是个什么意思  这个拿出去怎么写?
      

  3.   

    建立索引是更改数据库里的结构了吧 
    现在希望的是不改变数据库的  最好是sql文部分进行优化
      

  4.   

    另外 order by  data.sUserName,data.tStartTime Desc, data.tEndTime Desc把data.tStartTime Desc, data.tEndTime Desc 换成其他的字段都会很快的 时间排序很慢么
      

  5.   

    哦 ?楼上的详细讲讲哦
    索引建立提升了些速度 但是还是有点不满意  而且不想改数据库   所以目前把inner join 改为left join 同时吧where条件里的都用主表里的字段    速度提升效果与索引相同 
    不过还是希望再快点 如果不用order by 那速度我就很满意  可惜不可能并不排序 而且排序字段还不确定 感觉就是排序拉速度了
      

  6.   

    1.相关的索引   2. 先在Log中把条件a.tStartTime between '2008-12-08' and '2009-01-15 23:59:59'满足的取出来,再和其他连接
      

  7.   

    恩 尝试一下楼上的方法呵呵 是哦很多表 很多条件 这个是原始的sql文 慢  所以要优化