1. 程式人生 > >oracle 效能優化操作七:索引提高資料分佈不均勻時查詢效率

oracle 效能優化操作七:索引提高資料分佈不均勻時查詢效率

索引的選擇性低,但資料的分佈差異很大時,仍然可以利用索引提高效率。 A、資料分佈不均勻的特殊情況下,選擇性不高的索引也要建立。 表ServiceInfo中資料量很大,假設有一百萬行,其中有一個欄位DisposalCourseFlag,取範圍為列舉:[0,1,2,3,4,5,6,7

索引的選擇性低,但資料的值分佈差異很大時,仍然可以利用索引提高效率。

A、資料分佈不均勻的特殊情況下,選擇性不高的索引也要建立。

表ServiceInfo中資料量很大,假設有一百萬行,其中有一個欄位DisposalCourseFlag,取值範圍為列舉值:[0,1,2,3,4,5,6,7]。

按照前面說的索引建立的規則,“選擇性不高的欄位不應該建立索引”,

該欄位只有8種取值,索引值的重複率很高,索引選擇性明顯很低,因此不建索引。

然而,由於該欄位上資料值的分佈情況非常特殊,具體如下表:

取值範圍 佔總資料量的百分比 1~5 1%  6 98% 7 1%

而且,常用的查詢中,查詢DisposalCourseFlag<6 的情況既多又頻繁,毫無疑問,如果能夠建立索引,並且被應用,

那麼將大大提高這種情況的查詢效率。因此,我們需要在該欄位上建立索引。