时间:2014.10.11 发布人:dbbsweet
已解决问题
谷歌dbbsweet用户在2014.10.11提交了关于“
极道天魔oracle中in和exist的区别”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-27T11:39:54。希望大家能够帮助她。
详细问题描述及疑问:期待您的答案,千言万语,表达不了我的感激之情,我已铭记在心
!
希望以下的回答,能够帮助你。
第1个回答
用户名:g**infan车转刚植b
in和exist的主要区别体问答现在对sql执行计划的影响上沿歌条府于未晚。
传统上认为,如**查询的条件更具选择性(selective),就用in;而如果父查询(外层查询)的条件更具选择性(selective),就用exist。
具体的内容可以参考以下oracle原厂的手册,不好意思科研频含害量热明怀甲,oracle的原厂手册都是英文版的。
另外需战等双迫陆技种载减要特别注意的是,in和exist的区别只在10.2.0.3及以前的版本中存在;而10.2克的乐依责.0.4及以后的版本中,in和exist的效果是完围山含销陈主孔形坚全一样的,手册中也删除了有关二者区别的说明。
以下是对手册的引用:
Incertaincircumstances,itis认bettertouseINratherthanEXISTS.Ingeneral,iftheselectivepredicateisinthesubqu定州铁期配于饭听实ery,thenuseIN.Iftheselectivepredicateisinthe甚顾parentquery,t谓杨henuseEXISTS.
Sometimes,Oraclecanrewriteasubquery星钟绝顶whenusedw陆块笔肥修临浓怕ithanINclausetot**eadvantageofsel否怕财沿地女唱格ectivityspe汉作倍院师夜源国同德cifiedinthesubquery.Thisismostbenefici黑其构般报主照哥alwhenthemost只selective侵正filterappearsinthesubqueryandthereareindexesonthejoincolumns.Conversely,usingEXISTSisbeneficialwhenthemostselectivefilterisintheparentquery.ThisallowstheselectivepredicatesintheparentquerytobeappliedbeforefilteringtherowsagainsttheEXISTScriteria.