ISNULL(d.EffectiveDateA, d.EffectiveDateB) <= GETDATE()首先我承认业务很垃圾,半道接受,没办法。

解决方案 »

  1.   

    SQL 2005增加一个计算列,在这个计算列上做索引呢?
      

  2.   

    测了一下,计算列增加索引无益于性能优化,手工调整和Performance Tuning Advisor都试过了。
      

  3.   

    ISNULL(d.EffectiveDateA, d.EffectiveDateB) <= GETDATE()
    d.EffectiveDateA<= GETDATE() or (d.EffectiveDateB<= GETDATE() and d.EffectiveDateA is Null)再建对应的索引