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