<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    月掛夜中央

    懶惰程序員

    常用鏈接

    統(tǒng)計(jì)

    最新評(píng)論

    oracle中in,not in和exists,not exists之間的區(qū)別

             一直聽到的都是說(shuō)盡量用exists不要用in,因?yàn)閑xists只判斷存在而in需要對(duì)比值,所以exists比較快,但看了看網(wǎng)上的一些東西才發(fā)現(xiàn)根本不是這么回事。
    下面這段是抄的
    Select * from T1 where x in ( select y from T2 )
    執(zhí)行的過(guò)程相當(dāng)于:
    select *
      from t1, ( select distinct y from t2 ) t2
     where t1.x = t2.y;

    select * from t1 where exists ( select null from t2 where y = x )
    執(zhí)行的過(guò)程相當(dāng)于:
    for x in ( select * from t1 )
       loop
          if ( exists ( select null from t2 where y = x.x )
          then
             OUTPUT THE RECORD
          end if
    end loop

    從我的角度來(lái)說(shuō),in的方式比較直觀,exists則有些繞,而且in可以用于各種子查詢,而exists好像只用于關(guān)聯(lián)子查詢(其他子查詢當(dāng)然也可以用,可惜沒(méi)意義)。
    由于exists是用loop的方式,所以,循環(huán)的次數(shù)對(duì)于exists影響最大,所以,外表要記錄數(shù)少,內(nèi)表就無(wú)所謂了,而in用的是hash join,所以內(nèi)表如果小,整個(gè)查詢的范圍都會(huì)很小,如果內(nèi)表很大,外表如果也很大就很慢了,這時(shí)候exists才真正的會(huì)快過(guò)in的方式。
             下面這段還是抄的
    not in 和not exists
    如果查詢語(yǔ)句使用了not in 那么內(nèi)外表都進(jìn)行全表掃描,沒(méi)有用到索引;
    而not extsts 的子查詢依然能用到表上的索引。
    所以無(wú)論那個(gè)表大,用not exists都比not in要快。
              也就是說(shuō),in和exists需要具體情況具體分析,not in和not exists就不用分析了,盡量用not exists就好了。


    我的微博 http://t.sina.com.cn/1401900445

    posted on 2009-01-07 15:03 月掛夜中央 閱讀(6271) 評(píng)論(2)  編輯  收藏 所屬分類: SQL很強(qiáng)大

    評(píng)論

    # re: oracle中in,not in和exists,not exists之間的區(qū)別 2009-01-09 10:04 jyojyo

    in 語(yǔ)句翻譯成內(nèi)連接, 內(nèi)連接到最后還不是做loop?
    所以有區(qū)別嗎?  回復(fù)  更多評(píng)論   

    # re: oracle中in,not in和exists,not exists之間的區(qū)別 2009-01-12 08:30 月掛夜中央

    @jyojyo

    典型的連接類型共有3種:
    排序 - - 合并連接(Sort Merge Join (SMJ) )
    嵌套循環(huán)(Nested Loops (NL) )
    哈希連接(Hash Join)

    嵌套循環(huán)和哈希連接的算法還是有不同,在理論上哈希連接要快過(guò)排序和nl,當(dāng)然實(shí)際情況比理論上有復(fù)雜的多,不過(guò)兩者還是有差異的  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 亚洲性无码AV中文字幕| 亚洲精品成人av在线| 亚洲精品无码成人| 大地资源免费更新在线播放| 亚洲精品亚洲人成在线播放| 青青青免费国产在线视频小草| 亚洲国产成人精品激情| 拍拍拍又黄又爽无挡视频免费| 亚洲精品无码久久久久YW| 青青草国产免费久久久91| 香港经典a毛片免费观看看| 四虎永久免费影院| 成人特级毛片69免费观看| 亚洲人成网站观看在线播放| 亚洲精品黄色视频在线观看免费资源 | 免费一级全黄少妇性色生活片| 免费一级毛片在播放视频| 一区二区在线视频免费观看| 亚洲日韩中文字幕在线播放| 99在线观看免费视频| 亚洲一区二区三区无码国产 | 一级毛片不卡免费看老司机| 久久精品国产亚洲精品| 伊人久久免费视频| 亚洲综合一区国产精品| 亚洲国产成人久久综合野外| 日韩插啊免费视频在线观看| 亚洲字幕AV一区二区三区四区| 免费萌白酱国产一区二区| a级毛片免费高清毛片视频| 亚洲欧洲另类春色校园小说| 在线观看人成视频免费| 一级一看免费完整版毛片| 亚洲视频在线观看一区| 成人黄动漫画免费网站视频| 亚州**色毛片免费观看| 亚洲熟妇色自偷自拍另类| 免费v片视频在线观看视频| 久久久久免费看成人影片| 国产成人精品亚洲一区| 久久精品国产精品亚洲艾|