oracle 中有一大表数据几千万条记录
   将其中一个时间字段建立索引后
   1。查寻 时间字段=某日期 速度非常快 说明索引起作用 了
   2。查询 时间字段<某日期 and 时间字段>某日期 速度非常慢 说明索引不起作用。
说明:
  测试过让这个 时间字段=2008年8月8日 or 时间字段=2008年8月9日 查询速度快 索引起作用
  而 如果让这个时间字段>=2008年8月8日 and 时间字段<2008年8月10日 查询速度慢 索引不起做用 不知道是什么原因!

解决方案 »

  1.   

    有其他查询条件,都建索引了都是等于的  而且把时间查询条件放到where条件最后。
    字段1=‘店名’ and 字段2=‘公司名’ and 时间字段>=2008年8月8日 and 时间字段 <2008年8月10日 表中的数据分布情况是怎样的 这个我不知道怎么查数据分布情况。请赐教。多谢
      

  2.   

    看看执行计划是否选择的是其他索引;
    如果经过时间条件过滤后的记录已经很少,可以把SQL改写,使得oracle无法用其他的索引,例如upper(字段1)='店名';
    建复合索引也可以提高查询速度。