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)文章
Oracle配置dblink訪(fǎng)問(wèn)PostgreSQL的操作方法
本文給大家介紹下Oracle配置dblink訪(fǎng)問(wèn)PostgreSQL的操作方法,通過(guò)dblink訪(fǎng)問(wèn)PostgreSQL的詳細(xì)過(guò)程,對(duì)Oracle?dblink訪(fǎng)問(wèn)PostgreSQL相關(guān)知識(shí)感興趣的朋友一起看看吧2022-03-03Oracle中幾種常見(jiàn)的數(shù)據(jù)庫(kù)錯(cuò)誤類(lèi)型及處理方法
處理常見(jiàn)的數(shù)據(jù)庫(kù)錯(cuò)誤是數(shù)據(jù)庫(kù)管理的重要組成部分,以下是幾種常見(jiàn)的數(shù)據(jù)庫(kù)錯(cuò)誤類(lèi)型及其處理方法,結(jié)合具體代碼示例,以幫助你更好地解決這些問(wèn)題,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-09-09Oracle使用pivot和unpivot函數(shù)實(shí)現(xiàn)行列轉(zhuǎn)換
項(xiàng)目開(kāi)發(fā)過(guò)程中常常會(huì)涉及到oracle數(shù)據(jù)庫(kù)的一個(gè)數(shù)據(jù)操作,那就是行列的互轉(zhuǎn),本文為大家介紹了兩個(gè)可以實(shí)現(xiàn)這一操作的函數(shù)pivot和unpivot,感興趣的可以了解一下2023-06-06Oracle一個(gè)用戶(hù)如何訪(fǎng)問(wèn)其它用戶(hù)的表應(yīng)用指南
本文將詳細(xì)介紹Oracle一個(gè)用戶(hù)如何訪(fǎng)問(wèn)其它用戶(hù)的表,需要的朋友可以參考下2012-11-11oracle實(shí)現(xiàn)一對(duì)多數(shù)據(jù)分頁(yè)查詢(xún)篩選示例代碼
這篇文章主要給大家介紹了關(guān)于oracle實(shí)現(xiàn)一對(duì)多數(shù)據(jù)分頁(yè)查詢(xún)篩選的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11巧妙解決Oracle NClob讀寫(xiě)問(wèn)題(經(jīng)驗(yàn)分享)
下面小編就為大家?guī)?lái)一篇巧妙解決Oracle NClob讀寫(xiě)問(wèn)題(經(jīng)驗(yàn)分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Oracle排名函數(shù)(Rank)實(shí)例詳解
這篇文章主要介紹了Oracle排名函數(shù)(Rank)實(shí)例詳解,需要的朋友可以參考下2014-06-06