oracle 效能最佳化操作七:索引提高資料分布不均勻時查詢效率,oracle效能最佳化

來源:互聯網
上載者:User

oracle 效能最佳化操作七:索引提高資料分布不均勻時查詢效率,oracle效能最佳化

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

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

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

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

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

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

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

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

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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.