程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle性能優化操作七:索引提高數據分布不均勻時查詢效率

oracle性能優化操作七:索引提高數據分布不均勻時查詢效率

編輯:Oracle教程

oracle性能優化操作七:索引提高數據分布不均勻時查詢效率


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

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

表ServiceInfo中數據量很大,假設有一百萬行,其中有一個字段DisposalCourseFlag,取值范圍為枚舉值:[0,1,2,3,4,5,6,7]。

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

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

然而,由於該字段上數據值的分布情況非常特殊,具體如下表:

取值范圍 占總數據量的百分比
1~5 1%
6 98%
7 1%

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved