数据库中有一张T_A表,每月定期导入1000万条记录;
导入工具:SQL LOADER;
其中4个索引类型为:NORMAL,一个索引PDATE,其类型为BITMAP;
具体操作,导入之前将所有索引置为UNUSABLE,数据导入完成后将所有索引REBUILD
当前导入数据为7月份;select 'EXECUTE IMMEDIATE ''ALTER INDEX ' || index_name ||  ' UNUSABLE'';' from dba_indexes where table_name='T_A'
select 'EXECUTE IMMEDIATE ''ALTER INDEX ' || index_name ||  ' REBUILD'';' from dba_indexes where table_name='T_A'
 
select * from dba_indexes where table_name='T_A'发现问题如下:
--以条件PDATE='201107',检索数据,时间约一秒左右;
select * from T_A w where W.PDATE='201107' ---本月新增数据
--以条件PDATE='201106',检索数据,时间约一分左右;
select * from T_A w where W.PDATE='201106' ---上月新增数据问题:为什么时间效率上会差距这么大,谢谢各位!

解决方案 »

  1.   

    个人觉得是否和返回的数据量有关系 
      

  2.   

    1:看看执行计划,是否不同?
    2:如何获取数据的,全部查询?
      

  3.   

    查看了执行计划了,结果相同;
    获取数据是执行的指定条件下全部字段查询
      

  4.   

    做过表分析了,也把索引分析了,结果是无论查询当月数据还是上月数据,这次一样慢,都的一分钟,而且我这个表只有插入操作没有更新及删除操作,谢谢