日期:2014-05-17  浏览次数:20861 次

索引失效的问题
 select * from CARDINFO_154 where ROWNUM=1 AND   START_182 = '190000001157362' 
会使用索引 
select * from CARDINFO_154 where ROWNUM=1 AND   START_182 <= '190000001157362' AND  END_182 >= '190000001157362'
也会使用索引 COST 4


select * from CARDINFO_154 where ROWNUM=1 AND   START_182 = '190000001157362' 
 union all
 select * from CARDINFO_154 where ROWNUM=1 AND   START_182 <= '190000001157362' AND  END_182 >= '190000001157362'

不会使用索引 COST 3000多


我对 start_182  end_182 都建了索引  start_182和end_182也建了组合索引
数据量在60W左右


------解决方案--------------------
执行一下统计分析试试,dbms_stats.gather_table_stats('大写用户名','大写表名');
------解决方案--------------------
 奇怪,把执行计划贴出来看看?
------解决方案--------------------
这问题比较复杂,最好贴出表的定义,索引定义,执行语句及其执行计划等详细信息,大家才能帮你分析分析
------解决方案--------------------
我对 start_182  end_182 都建了索引  start_182和end_182也建了组合索引
------------
为什么建这么多索引。为什么不直接建组合索引。