解决方案 »

  1.   

    你的索引是怎么建的?
    我猜是TASK_STATUS、agentid、batchnum这三个字段的组合索引
    当结果集中存在除这3项之外的字段时就会不走索引而是全表扫描
    oracle自身优化时除了考虑利用索引提升查询速度,还会考虑数据io消耗等多方面的因素,最终选取一种最合适的方案
      

  2.   

    不是,都是create index XXX on ts_outphone_list(XXX);建立的。不过这个查询的数据量比较大,agentid参数不同,解释计划不同,当数据小时,用索引了
      

  3.   

    查询效率和io效率的比拼
    就好比生产(查询)和销售(io)的关系
    小批量生产时,总有销售人员闲着,此时会优先提高生产效率
    大批量生产时,生产的再快也卖不出去,此时会优先提高销售的效率使用索引查询时查询效率高,io效率低
    使用全表扫描时查询效率低,io效率高