我有一个SQL,其中有以下的两个条件:
表A.字段1 = 表B.字段1
and 表B。字段1 = 一个固定值表A中的数据比较多,表B中的比较少
当这里两个条件同时存在的情况下,SQL执行速度非常慢。
但是将 表B。字段1 = 一个固定值这个条件去掉后,SQL执行很快。
请问这是什么原因?按道理两个条件都存在的情况下应该执行得更快一些。请高手指教谢谢!

解决方案 »

  1.   

    按道理两个条件都存在的情况下应该执行得更快一些?是这样吗?去掉=固定值就直接就是表连接,而加上则先从表B中过滤一部分数据出来之后再进行连接,明显多了一个过滤的操作了。怎么还会更快呢?
      

  2.   

    那请问这个性能如何优化呢?
      

  3.   

    但是表B中只有很少的数据啊?这个过滤操做所用的时间应该很少啊.
      

  4.   

    把你的语句贴出来
    除了以上说的条件,还有没有其他的条件
      

  5.   

    其他的条件不动,我只把那个固定值的条件去掉了就变快了,就算我加别的表B中的字段作为抽出条件也很快,但是只要加上那个表B。字段1 = 一个固定值就变慢了。
      

  6.   

    那要看这两个查询条件哪一个先执行了