Oracle In和exists not in和not exists的比較分析
更新時(shí)間:2009年08月27日 00:50:33 作者:
一個(gè)是問(wèn)in exist的區(qū)別,一個(gè)是not in和not exists的區(qū)別
把這兩個(gè)很普遍性的網(wǎng)友比較關(guān)心的問(wèn)題總結(jié)回答一下。
in和exist的區(qū)別
從sql編程角度來(lái)說(shuō),in直觀,exists不直觀多一個(gè)select,
in可以用于各種子查詢(xún),而exists好像只用于關(guān)聯(lián)子查詢(xún)
從性能上來(lái)看
exists是用loop的方式,循環(huán)的次數(shù)影響大,外表要記錄數(shù)少,內(nèi)表就無(wú)所謂了
in用的是hash join,所以?xún)?nèi)表如果小,整個(gè)查詢(xún)的范圍都會(huì)很小,如果內(nèi)表很大,外表如果也很大就很慢了,這時(shí)候exists才真正的會(huì)快過(guò)in的方式。
not in和not exists的區(qū)別
not in內(nèi)外表都進(jìn)行全表掃描,沒(méi)有用到索引;
not extsts 的子查詢(xún)能用到表上的索引。
所以推薦用not exists代替not in
不過(guò)如果是exists和in就要具體看情況了
有時(shí)間用具體的實(shí)例和執(zhí)行計(jì)劃來(lái)說(shuō)明。
in和exist的區(qū)別
從sql編程角度來(lái)說(shuō),in直觀,exists不直觀多一個(gè)select,
in可以用于各種子查詢(xún),而exists好像只用于關(guān)聯(lián)子查詢(xún)
從性能上來(lái)看
exists是用loop的方式,循環(huán)的次數(shù)影響大,外表要記錄數(shù)少,內(nèi)表就無(wú)所謂了
in用的是hash join,所以?xún)?nèi)表如果小,整個(gè)查詢(xún)的范圍都會(huì)很小,如果內(nèi)表很大,外表如果也很大就很慢了,這時(shí)候exists才真正的會(huì)快過(guò)in的方式。
not in和not exists的區(qū)別
not in內(nèi)外表都進(jìn)行全表掃描,沒(méi)有用到索引;
not extsts 的子查詢(xún)能用到表上的索引。
所以推薦用not exists代替not in
不過(guò)如果是exists和in就要具體看情況了
有時(shí)間用具體的實(shí)例和執(zhí)行計(jì)劃來(lái)說(shuō)明。
相關(guān)文章
Flume監(jiān)聽(tīng)oracle表增量的步驟詳解
這篇文章主要介紹了Flume監(jiān)聽(tīng)oracle表增量的步驟詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
ORACLE出現(xiàn)錯(cuò)誤1033和錯(cuò)誤ORA-00600的解決方法
這篇文章主要介紹了ORACLE出現(xiàn)錯(cuò)誤1033和錯(cuò)誤ORA-00600的解決方法,需要的朋友可以參考下2014-07-07
oracle數(shù)據(jù)庫(kù)中sql%notfound的用法詳解
SQL%NOTFOUND 是一個(gè)布爾值。下面通過(guò)本文給大家分享oracle數(shù)據(jù)庫(kù)中sql%notfound的用法,需要的的朋友參考下吧2017-06-06
Oracle數(shù)據(jù)庫(kù)復(fù)雜度設(shè)置圖文教程
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)復(fù)雜度設(shè)置的相關(guān)資料,Oracle可以通過(guò)設(shè)置密碼復(fù)雜度來(lái)提高數(shù)據(jù)庫(kù)的安全性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
Oracle層次查詢(xún)和with函數(shù)的使用示例
下面我跟大家分享下我的心得,也就是基于這種設(shè)計(jì)怎么做數(shù)形圖,簡(jiǎn)單的做法就是查詢(xún)出一個(gè)list集合就可以,要怎么辦呢先來(lái)看下我的數(shù)據(jù)表2013-07-07
oracle 11g的安裝注意事項(xiàng)總結(jié)
這篇文章主要給大家介紹了關(guān)于oracle 11g的安裝注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

