在創建Oracle索引時,有一些問題使我們需要注意的,下面就為您介紹創建Oracle索引的一些注意事項,希望對您學習創建Oracle索引方面能有所幫助。
1、一般來說,不需要為比較小的表創建索引;
2、即使是大表,如果經常需要查詢的數據不超過10%到15%的話,那就沒有必要為其建立索引的必要。因為此時建立索引的開銷可能要比性能的改善大的多。這個比例只是一個經驗的數據。如果數據庫管理員需要得出一個比較精確的結論,那麼就需要進行測試分析。
3、如對於一些重復內容比較少的列,特別是對於那些定義了唯一約束的列。在這些列上建立索引,往往可以起到非常不錯的效果。如對於一些null值的列與非Null值的列混合情況下,如果用戶需要經常查詢所有的非Null值記錄的列,則最好為其設置索引。如果經常需要多表連接查詢,在用與連接的列上設置索引可以達到事半功倍的效果。
4、數據庫管理員,需要隔一段時間,如一年,對數據庫的索引進行優化。該去掉的去掉,該調整的調整,以提高數據庫的性能。
5、通常來說,表的索引越多,其查詢的速度也就越快。但是,表的更新速度則會降低。這主要是因為表的更新(如往表中插入一條記錄)速度,反而隨著索引的增加而增加。這主要是因為,在更新記錄的同時需要更新相關的索引信息。為此,到底在表中創建多少索引合適,就需要在這個更新速度與查詢速度之間取得一個均衡點。
6、對於一些數據倉庫或者決策型數據庫系統,其主要用來進行查詢。相關的記錄往往是在數據庫初始化的時候倒入。此時,設置的索引多一點,可以提高數據庫的查詢性能。同時因為記錄不怎麼更新,所以索引比較多的情況下,也不會影響到更新的速度。即使在起初的時候需要導入大量的數據,此時也可以先將索引禁用掉。等到數據導入完畢後,再啟用索引。可以通過這種方式來減少索引對數據更新的影響。相反,如果那些表中經常需要更新記錄,如一些事務型的應用系統,數據更新操作是家常便飯的事情。此時如果在一張表中建立過多的索引,則會影響到更新的速度。
7、關於位圖索引。
基數是位圖索引中的一個基本的定義,它是指數據庫表中某個字段內容中不重復的數值。如在員工信息表中的性別字段,一般就只有男跟女兩個值,所以,其基數為2;婚姻狀況字段的話,則其只有已婚、未婚、離婚三種狀態,其基數就為3;民族一覽內也是只有有限的幾個值。