台灣最大程式設計社群網站
線上人數
1776
 
會員總數:245256
討論主題:189112
歡迎您免費加入會員
討論區列表 >> C# >> 改善NOT EXISTS,調校ORACLE
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
改善NOT EXISTS,調校ORACLE
價值 : 50 QP  點閱數:172 回應數:0

樓主

bryant0926
門外漢
0 4
186 10
發送站內信

最近在調校PL/SQL
因為有一段透過ORACLEPARAMETER去呼叫PROCEDURE很久才回傳(猜測是TABLE ACCESS FULL)
可是直接在PL/SQL去查詢是快的
然後我發現PROCEDURE其中一段是關鍵,以下這段
select a.mainid,a.line from Trace a where a.generation = 0 and length(a.lot) <= 16
and not exists (select b.chid from Trace b where b.chid = a.mainid and b.generation > 0)

發現用F5去搜尋是NOT EXISTS那段會TABLE ACCESS FULL

SELECT STATEMENT, GOAL = ALL_ROWS 2481 1 63
HASH JOIN ANTI 2481 1 63
INDEX FAST FULL SCAN MESUSER IX_TRACE_0 626 6218 279810
TABLE ACCESS FULL MESUSER TRACE 1847 544669 9804042

有辦法再將這段做改善,讓他可以抓到INDEX嗎,因為也有下過/*+ index(Trace INDEX_TRACE) */ 去指定
再麻煩大家有沒有好的方法分享
謝謝

搜尋相關Tags的文章: [ C# ] , [ ORACLEPARAMETER ] , [ ORACLE ] , [ NOT EXISTS ] ,
本篇文章發表於2019-09-05 18:21
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

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