Oracle In和exists not in和not exists的比較分析
更新時間:2009年08月27日 00:50:33 作者:
一個是問in exist的區(qū)別,一個是not in和not exists的區(qū)別
把這兩個很普遍性的網(wǎng)友比較關(guān)心的問題總結(jié)回答一下。
in和exist的區(qū)別
從sql編程角度來說,in直觀,exists不直觀多一個select,
in可以用于各種子查詢,而exists好像只用于關(guān)聯(lián)子查詢
從性能上來看
exists是用loop的方式,循環(huán)的次數(shù)影響大,外表要記錄數(shù)少,內(nèi)表就無所謂了
in用的是hash join,所以內(nèi)表如果小,整個查詢的范圍都會很小,如果內(nèi)表很大,外表如果也很大就很慢了,這時候exists才真正的會快過in的方式。
not in和not exists的區(qū)別
not in內(nèi)外表都進(jìn)行全表掃描,沒有用到索引;
not extsts 的子查詢能用到表上的索引。
所以推薦用not exists代替not in
不過如果是exists和in就要具體看情況了
有時間用具體的實(shí)例和執(zhí)行計劃來說明。
in和exist的區(qū)別
從sql編程角度來說,in直觀,exists不直觀多一個select,
in可以用于各種子查詢,而exists好像只用于關(guān)聯(lián)子查詢
從性能上來看
exists是用loop的方式,循環(huán)的次數(shù)影響大,外表要記錄數(shù)少,內(nèi)表就無所謂了
in用的是hash join,所以內(nèi)表如果小,整個查詢的范圍都會很小,如果內(nèi)表很大,外表如果也很大就很慢了,這時候exists才真正的會快過in的方式。
not in和not exists的區(qū)別
not in內(nèi)外表都進(jìn)行全表掃描,沒有用到索引;
not extsts 的子查詢能用到表上的索引。
所以推薦用not exists代替not in
不過如果是exists和in就要具體看情況了
有時間用具體的實(shí)例和執(zhí)行計劃來說明。
相關(guān)文章
Oracle配置dblink訪問PostgreSQL的操作方法
本文給大家介紹下Oracle配置dblink訪問PostgreSQL的操作方法,通過dblink訪問PostgreSQL的詳細(xì)過程,對Oracle?dblink訪問PostgreSQL相關(guān)知識感興趣的朋友一起看看吧2022-03-03Oracle中幾種常見的數(shù)據(jù)庫錯誤類型及處理方法
處理常見的數(shù)據(jù)庫錯誤是數(shù)據(jù)庫管理的重要組成部分,以下是幾種常見的數(shù)據(jù)庫錯誤類型及其處理方法,結(jié)合具體代碼示例,以幫助你更好地解決這些問題,感興趣的小伙伴跟著小編一起來看看吧2024-09-09Oracle使用pivot和unpivot函數(shù)實(shí)現(xiàn)行列轉(zhuǎn)換
項(xiàng)目開發(fā)過程中常常會涉及到oracle數(shù)據(jù)庫的一個數(shù)據(jù)操作,那就是行列的互轉(zhuǎn),本文為大家介紹了兩個可以實(shí)現(xiàn)這一操作的函數(shù)pivot和unpivot,感興趣的可以了解一下2023-06-06Oracle一個用戶如何訪問其它用戶的表應(yīng)用指南
本文將詳細(xì)介紹Oracle一個用戶如何訪問其它用戶的表,需要的朋友可以參考下2012-11-11oracle實(shí)現(xiàn)一對多數(shù)據(jù)分頁查詢篩選示例代碼
這篇文章主要給大家介紹了關(guān)于oracle實(shí)現(xiàn)一對多數(shù)據(jù)分頁查詢篩選的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11巧妙解決Oracle NClob讀寫問題(經(jīng)驗(yàn)分享)
下面小編就為大家?guī)硪黄擅罱鉀QOracle NClob讀寫問題(經(jīng)驗(yàn)分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10Oracle排名函數(shù)(Rank)實(shí)例詳解
這篇文章主要介紹了Oracle排名函數(shù)(Rank)實(shí)例詳解,需要的朋友可以參考下2014-06-06