[SQL ] INNER/LEFT JOIN效能比較問題

看板Database作者時間13年前 (2012/05/14 21:21), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/3 (看更多)
公司用的DB是Oracle 根據以前的記憶(及google的結果) inner join應該效率要比 left join來的好 但進目前公司後常遇到一種情況 針對SQL條件中的某個table 用left join的速度會比inner join快上非常多(可能是上百倍以上) (從toad去看execution plan 整個plan只有針對哪張表為inner/outer join的差別) 目前會想到的線索可能有兩個 第一個 join 欄位的值是可能出現null (所以才會想用inner join把它去掉) 第二個 join的欄位沒有index table的資料量約上百萬筆 我試著用null/index/left/inner 去google找答案 一直找不到相關的info 不知道有沒有前輩 能從前面哪些稀薄的線索幫我找出病徵來 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.46.156

05/14 21:44, , 1F
能給具體一點的例子嗎 = =" 2邊TABLE的筆數差不多?
05/14 21:44, 1F

05/14 21:45, , 2F
另外你的意思是說兩邊都可能有NULL 且都沒建立INDEX?
05/14 21:45, 2F

05/14 22:10, , 3F
兩邊TABLE的筆數會有差 可能是幾萬筆對上百萬筆
05/14 22:10, 3F

05/14 22:11, , 4F
兩邊的確都有null 且都沒有建立index =.=|||
05/14 22:11, 4F

05/15 09:54, , 5F
我記得不是有查詢計畫可以看
05/15 09:54, 5F

05/15 09:55, , 6F
另外他們用的實際join方式是什麼
05/15 09:55, 6F

05/15 09:56, , 7F
我好像有聽過大小TABLE JOIN有差
05/15 09:56, 7F

05/16 07:21, , 8F
第三方的軟體看的explan不準,請用標準sql plus的..
05/16 07:21, 8F

05/16 07:24, , 9F
另null join null會造成迪卡爾乘積,依情況判斷一下吧
05/16 07:24, 9F
文章代碼(AID): #1FiGRWRM (Database)
文章代碼(AID): #1FiGRWRM (Database)