为什么oralce不提倡使用in或者or来查询啊?????

解决方案 »

  1.   

    oracle建立查询树的时候对in,or,like '%memo'等谓词无法有效的处理,
    所以一般会导致遍历表,就是在执行计划中access full table。
      

  2.   

    说白了就是效率问题,oracle对于模糊查询会进行全表查询
      

  3.   

    TOM 说过,用与不用要根据具体的情况来分析。并不是如楼上各位那么绝对的说IN,or,LIKE就是效率低下,如果真是这样的话,ORACLE不如干脆把IN,or,LIKE给取消掉呢!怀疑楼主是在哪里看到的这类观点,绝对不应该是ORACLE自己说的 !
      

  4.   


    最好不要用此类的IN,OR....会遍历全表,不信可以用小车试一下,看一下有多少COST值就明白了
      

  5.   


    最好不要用引类的IN,OR....会遍历全表,不信可以用小车试一下,看一下有多少COST值就明白了
      

  6.   

    TOM有比较过In和Exists的算法,大家找下就知道了.
    我觉的如果元素值比较少用In比较合适,反之exists好。