台灣最大程式設計社群網站
線上人數
1131
 
會員總數:245927
討論主題:189535
歡迎您免費加入會員
討論區列表 >> Oracle >> 這段sql有辦法在優化嗎?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
這段sql有辦法在優化嗎?
價值 : 30 QP  點閱數:1407 回應數:4
樓主

puma
初學者
10 56
767 85
發送站內信



各位日安

上面這段是我自己寫的sql

這次我第一次接觸那麼多資料的table

bank資料表有快兩百萬筆資料

執行一次上面這一段的sql需要花費106秒

不知道這樣是不是正常的時間?

因為我覺得好久阿~~~

想請問一下,就這段SQL能否哪裡可以在優化呢?

還是哪裡寫的方式不好,可以指教一下,

謝謝 :)

本篇文章發表於2013-11-05 17:28
1樓
不錯的參考

麥兜照日光
捐贈 VP 給 麥兜照日光 檢舉此回應
Hi~你好
提供方向參考看看
1. 使用執行計畫看那一段所花費較高
2. 樓主的條件已經有利用時間區域來精簡資料量
3. 使用hint
4. 或是使用procedure把要的資料固定時間執行寫到View,然後query View的資料

以上!
本篇文章回覆於2013-11-05 19:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

fantasy
捐贈 VP 給 fantasy 檢舉此回應
幾乎相同的SQL內容,僅因條件不同而使用UNION ALL來串接,串接幾次就多掃幾次Table,自然效能會更慢

Try

本篇文章回覆於2013-11-06 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

Hsu, Harry
檢舉此回應
請問板主大大問題:

1. 群組問題
  用OR,代表是否同一筆資料,可能會出現在兩群中(ex: 1050, 1150)

2. 資料特性
  看起來rate是by月份,相同月份者均使用同一rate
-----------------
兩百萬筆資料實屬小量,若INDEX使用得當,1秒內非難事。可將11群可合併成1組即可完成,無需使用UNION ALL。
本篇文章回覆於2013-11-07 11:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Hsu, Harry
檢舉此回應
個人是比較偏好用以下概念的方法:
本篇文章回覆於2013-11-11 10:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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