oracle中有一个表中有二千万条数据,这个表有十六个字段,现在做了一个系统,是对这个表中的数据进行模糊查询,可是查询慢,我已经建立了索引,可是也没快多少,请教大家有什么好的办法吗?

解决方案 »

  1.   

    查询涉及到哪些字段?涉及到哪些组合?能否确定查询范围?
    诸如select * from tab where col like '%xx%'是不能使用上索引的,
    而select * from tab where col like 'xx%'是可以使用索引的。
      

  2.   

    可以看看LZ的情况的。比如,创建分区表,等等,是否可以利用呢?检索的条件又是什么呢?用Oracle SQL TUNING得到什么样的建议呢?赫赫。
      

  3.   

    比如你要查询匹配字段col含有字符ab的记录:1:这种方法不会用到索引
    select *
      from tablename
     where col like '%ab%';
    2:但是下面这种方法可以用到col列上建的索引:
    select *
      from tablename
     where instr(col,'a') > 0
       and instr(col,'b') > 0;
    这个SQL性能优化方面的知识,LZ看看书就知道了, try it ..