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