相关文章  
  • 提升Win XP性能的20个特殊技巧
  • Windows操作系统的十则高级应用技巧
  • 通过 XML 发布新闻
  • Windows 2000操作系统优化实战
  • 了解一下NULLs怎样影响IN和EXISTS
  • 细说Windows XP 虚拟内存优化
  • 戳穿优化Windows XP的经典谣言
  • Windows XP系统全面软优化
  • 再谈如何释放C盘空间 27招具体优化技巧
  • 详解Windows非法操作的具体含义
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    子查询中的IN与EXISTS的区别4

    and ename = 'KING';
      
          if l_count != 0 then
      
            dbms_output.put_line(e.ename);
      
          end if;
      
        end loop;
      
      end;
      为了确定在基于规则的最优化中,哪一种子句性能更佳,不妨考虑一下,与外部查询相比,内部查询会返回多少行记录。许多情况下,EXISTS的表现更突出,这是因为,它需要你指定一个加入条件,这就可以调用一个INDEX扫描。尽管如此,如果该查询的结果很小的话,IN常常表现得更好。你通常都愿意运行那些能首先返回较少的结果的查询。
      
      有些人尽量避免使用EXISTS子句,这是因为,它要求必须从该查询中返回一个结果,纵使这个结果根本就不会用到。由于个人喜好的原因,人们经常使用‘x’,1,0或零。从说明计划的输出我们可以看到,它显示了,最优化会一直使用0而拒绝接受你所有输入的其它任何值。许多开发人员有这样一种习惯,那就是经常输入一些常量。
      
      如果你想运行一下你自己的测试,或者想看看其它的例子,以下是我使用的两个脚本:
      
      REM -- explain.sql - view plan from PLAN_TA

    页码:[1] [2] [3] [4] [5] [6] [7] [8]4页、共8页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved