0
我要查詢遷移到存儲過程,我也得到TAF(表訪問完整版),我想獲得更好的性能創建索引,我旁邊:創建索引以降低數據庫中的成本?
CREATE INDEX MY_INDEX2 ON OWNER.TABLE_NAME(FIELD);
我也得到下一個:
INDEX_NAME UNIQUE LOGGING DEGREE COLUM_NAME ORDER POSITION INDEX_OWNER
MY_INDEX Y NO 1 MY_FIELD Asc 1 MY_OWNER
MY_INDEX2 N YES 1 MY_FIELD1 Asc 1 MY_OWNER
任何知道如何將MY_INDEX2的位置更改爲2?
我的MY_INDEX2有多好? 例如,添加不同的順序並使用位圖索引。
任何解釋我什麼意思度?
謝謝!
您意識到索引並不一定意味着在所有查詢中都可以避免使用表訪問權限,對吧?如果一個查詢需要處理大量的行(比如表中所有行的70%以上),那麼檢索所有行並忽略那些不需要的行會更有效率,訪問的索引。確保你不添加不必要的索引,因爲他們有成本,他們不僅有好處。 – mathguy
要擴大@ mathguy的答案;這都是關於成本的。優化器將評估不同的執行計劃,並選擇成本最低的執行計劃。它從哪裏獲得成本?統計!。因此,爲您查詢執行計劃並讓我們看看優化器的想法。執行此操作:alter session set statistics_level = ALL;然後運行您的查詢。然後從表中獲取select *的輸出(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST')) – BobC