台灣最大程式設計社群網站
線上人數
901
 
會員總數:245475
討論主題:189234
歡迎您免費加入會員
討論區列表 >> Oracle >> where substr查詢效能
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
where substr查詢效能
價值 : 30 QP  點閱數:2169 回應數:3

樓主

Faylinn
門外漢
0 1
20 1
發送站內信

請教大家
若有兩個資料表,他們的關聯是某欄位的擷取字串相等,有什麼效能好的寫法嗎?
目前是
SELECT [some column] from TableA a,TableB b
where substr(a.C1,2) = substr(b.C1,2)
[other where string]
因為資料筆數非常多,對TableB來說似乎是Full Table scan,所以執行的Cost非常高...
想不到有什麼方法可以改善效能,想和大家討論看看,謝謝。

搜尋相關Tags的文章: [ where ] , [ substr ] ,
本篇文章發表於2012-10-03 20:15
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

Pan01
檢舉此回應
沒有 ,
除非 你 是先 將 擷取字串 內容 到 另一個欄位 , 那你就可以用 index 改善效能
本篇文章回覆於2012-10-03 21:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

花旗蔘
檢舉此回應
----TRY create a function based index
EX:
create index xyzB on TableB(substr(C1,2))


本篇文章回覆於2012-10-04 00:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Faylinn
檢舉此回應
謝謝兩位的回覆~感激!!
本篇文章回覆於2012-10-12 14:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.