游标占用内存比较大,用于批量查询不如exists和in快;但用于一条记录一条记录的处理时,比exists和in方便的多,会快的。
所以不能一概而论,要分使用的场合和情况。

解决方案 »

  1.   

    我单知道exists比in快的: 不能一概而论吧.not in  是慢的
      

  2.   

    多谢四大天王,补充一下,我说的都是在存储过程中比如下面三个情况,数据量比较大的话,2是比1 快的吧,3跟它们比呢?
    1.in
    update a ..
    where a.type_code in (select type_code from b)2.exists
    update a...
      where exists (select 1 from b where b.type_code = a.type_code)3.cursor
    for v_type in cur_type_code
      update a....
        where a.type_code = v_type.type_code
      

  3.   

    游标(Cursor)的慎用  :
    http://www.21eok.com/school/2003-3-3/200333185821.htm
    IN和EXISTS:
    ...实际上第二种格式要远比第一种格式的效率高。在Oracle中可以几乎将所有的IN操作符子查询改写为使用EXISTS的子查询.............
    http://www.5xsoft.com/data/200107/2020045901.htm
      

  4.   

    有时候我们用一条SQL无法解决时,就要考虑用游标,游标效率确实不高Exists效率一般比In高
      

  5.   

    游标跟exists和in比
    速度怎么样?
    ? > ? > ?
      

  6.   

    我建议用游标,逻辑清晰
    如果业务复杂,用Exists语句出点什么问题会整死人的