Oracle 函数索引(部分索引)应用实例场景--栏位值只有几种情况

这里讲一个函数索引的应用场景,可以大大优化Sql效能:

背景:如果表中有一列的数据分布很不均匀,大部分是1,少部分是0,而且我们经常查询的刚好是0,在这种情况下,走全表扫描的话,有些浪费资源,如 果对该列建立索引的话,那些值为1的索引数据又有些浪费,因为我们很少去查询值为1的数据,所以我们只对值为0的数据建立索引。

采用部分索引前:
采用部分索引后:

 如下请考虑是否可添加部分索引来优化。

create index SFIS1.INDEX_04 on SFIS1.C_SAP_RFC_C_T(case when TYPE='SPOS' then TYPE end);

SQL语句更新为:

SELECT *FROMSFIS1.C_SAP_RFC_C_TRCWHERE (CASEWHENTYPE='SPOS'THENTYPEEND)='SPOS'

 
posted @ 2015-06-07 19:15  Gavin.King  阅读(455)  评论(0编辑  收藏  举报