我要做统计报表,但数据量很大,为了提升速度,现在对表建索引。第一个统计
select * from Hrb0502 where a is not null 
and b like cutzero('360424101000')||'%' 
and c between to_date('2012-01', 'yyyy-mm') 第二个统计
select * from
            Hrb0502   
        where
a like '360424101%'  
and d like '444%'
and    c >= to_date('2012-01-01','yyyy-mm-dd')现在我已经对第二个统计建了一个索引
create index IDX on HRB0502(a,d,c)第一个统计还要不要对第一个统计建索引呢?

解决方案 »

  1.   

    你用的LIKE,根本就不会走这个复合索引,你这样的索引,只会降低数据库性能
      

  2.   

    你的意思是说 对使用了like的那个条件建索引会降低性能还是说,sql语句里面有like 建索引就不会起作用?
      

  3.   

    可以查查数据的分布,对重复最少的列上创建索引或者在能过滤最多数据的字段上创建索引,按照你现在的LIKE(前面字符固定)应该是可以使用索引的,
      

  4.   

    like是一方面,索引字段d加函数也不会走索引
      

  5.   

    create index IDX on HRB0502(a,c) 那我直接这样建索引就可以了?