SQL JOIN和行過濾哪個先執行

2022-12-27 00:42:53 字數 2413 閱讀 7110

1樓:匿名使用者

應該是oracle吧?

如果執行計劃一樣說明處理是一樣的

一般情況下處理一樣,效能也就沒有區別。

oracle10g以上的是基於成本的,可以自動計算出最優路徑並調整sql內部的執行順序。像你的情況,你兩條sql的區別也就在於過濾條件在前還是在後.。 oracle計算出最優路徑最終執行的sql其實是一樣的,所以執行計劃就一樣。

當然,也有例外。比如說表經過了大批量的刪除或插入或更新操作。oracle對該表的統計資訊沒有及時更新,所以它仍然沿用之前的執行計劃。就導致查詢緩慢。

所以,檢視效能最直觀的方法就是比較兩條sql語句耗時大小。如果差不多則說明效能一樣。反之就存在問題。

就sql的規範而言,還是將過濾條件寫在前面,join寫在後面比較好。

2樓:告悠蒯從蓉

效能上,從理想化的角度來說是沒有區別的,sql語句執行時一般都會有一個查詢優化的過程,會自動優化,但是,就像c語言編譯器自動優化效果有時候比不上人工優化一樣,在某些特定情況下,特別是涉及到一些計算機不知道的面向具體業務的知識時,還是手工優化一下更好。

3樓:乜男盛初之

從笛卡爾乘積的角度上講,先過濾再連線,可以使無用的資料不進行笛卡爾乘積,比如原本進行100*100條資料排列,變成只有60*60排列,效能提高的效果很明顯。

sql中left join on 和where的執行順序 ?

4樓:

5樓:匿名使用者

看執行計劃不就知道了,現在都是基於成本的優化器了,只有看計劃才能知道先執行那部分

6樓:匿名使用者

先連線,應該是從from之後順序執行,所以先連線

sql join語句執行順序跟效率問題

7樓:

這3個方式都是用left join的方式連線查詢,所以執行速度不會有明顯的差別

第三條語句寫錯了,

8樓:匿名使用者

可以利用objectbrowser的sql執行計劃功能除錯,很方便。

sql join (以left join為例)的表的先後順序主要如何考慮? 100

9樓:匿名使用者

在不影響速度的情況下可以不考慮順序,當查詢速度慢時,優化查詢速度時要考慮left join表的順序。以查詢表的資料量小的放置在前,以有查詢過濾條件的放置在前面,優先關聯

10樓:斯內科

select * from

a left join b on a.id=b.idsql是這樣做的

以a表的某一個a.id為基準 查詢b表的b.id是否有該a.id的記錄

有幾行 那麼查詢節點 關於當前a.id的記錄就有幾條如果b表徹底沒有a.id的記錄 b表的所有欄位全部按null處理

11樓:匿名使用者

說明:left join 是左連線查詢

left join 關鍵字會從左表 (a) 那裡返回所有的行,即使在右表 (b) 中沒有匹配的行。

語法:select a.*,b.*  from a  left join b on a.x=b.x

分析:上面sql中:left join是以a表的記錄為基礎的,a可以看成左表,b可以看成右表,left join是以左表為準的。

換句話說,左表(a)的記錄將會全部表示出來,而右表(b)只會顯示符合搜尋條件的記錄(例子中為: a.aid = b.

bid)。b表記錄不足的地方均為null。

12樓:匿名使用者

您好,sql語句有join是因為把優化後的資料重新聯結完整,體現直觀資料表達的作用.(這樣講可能還是太抽象).

我們做資料優化的時候.一般要理清楚資料實體的關聯關係.

例如:e-r

所以先後順序的問題.

left join的話.

第一張表就是主體表

後面的都是與這張表有關聯關係的表(一般是明細表,輔表)把主體表與left join tablename的關聯欄位作為on條件

希望我的回答能幫助您理解.

13樓:dota_老坑爹

樓主問的意思,應該是從效能上面考慮!我記得在哪看過,連線應該把較小的表放在前面!

sql中多個left join執行順序問題

14樓:

你知道了嗎 我想問一下怎麼個順序

system.out.println("請回答我");

CPU和顯示卡先換哪個,CPU和顯示卡先換哪個

兄弟,這個真不能一概而說 因為你想啊,現在你換一個,以後你再換要考慮相容的問題先換cpu,也不能換個好的,換好的主機板跟不上,一般的以後在還主機板cpu又跟不上,這樣就浪費了 先換顯示卡呢,你的顯示卡也能對付用,所以我覺得也沒必要換,如果非要換,在主機板允許的情況下,並且打算在3年左右的時間主機板不...

TOEFL和GMAT先攻哪個好

其實這兩個考試哪個先考都一樣,因為它們考察的能力不同。toefl考察語言能力,而gmat是應試能力。考過gmat的人都知道,哪怕四級不過,考g也不是不能成功的。唯一相關的就是閱讀能力。所以說,先考g,對t的閱讀有些幫助,再來就是一個英語思維能力。而考t的話,整體水平都有提高,對g當然會有幫助。譬如單...

幫忙用五行看看名字和此生的運程謝謝

熊志萌 五 行 水 火 木 好名字!天格為 大吉 人格為 大吉 地格為 大吉 外格為 大吉 總格為 大吉 此八字名字匹配較佳,一生為人忠厚正直,做事穩健可靠,有頭腦,敢作敢當,大致表面溫和內性剛強,耐心不足。未來學業事業可達成,能平步青雲,步步高昇,內外平順圓滿,財運不缺,基礎安泰。幫忙給看看今年和...