我們創建了基於函數的索引,但是如果執行下面的查詢:
<span style="font-size:18px;">select * from emp where substr(ename,1,1)=’S’;</span>
得到的執行計劃將還是(TABLE ACCESS FULL),因為只有當數據列能夠等式匹配時,基於函數的索引才能生效,
這樣對於這種索引的計劃和維護的要求都很高。請注意,向表中添加索引是非常危險的操作,因為這將導致許多查詢執行計劃的變更。
然而,如果我們使用基於函數的索引就不會產生這樣的問題,因為Oracle只有在查詢使用了匹配的內置函數時才會使用這種類型的索引。