一个简单的统计语句,按地区统计用户数,create_date 上有索引:select a.region_code,count(1) cnt from zk.cm_user a 
where a.create_date > to_date('20061223','yyyymmdd')
and a.create_date < to_date('20061224','yyyymmdd')
group by a.region_code很快,查看计划,用到索引但是将时间改为SYSDATE后
select a.region_code,count(1) cnt from zk.cm_user a 
where a.create_date > trunc(sysdate-1)
and a.create_date < trunc(sysdate)
group by a.region_code
计划变成TABLE ACCESS FULL,未用索引,速度奇慢。
SELECT STATEMENT, GOAL = CHOOSE Cost=21482 Cardinality=16 Bytes=240
 SORT GROUP BY Cost=21482 Cardinality=16 Bytes=240
  FILTER
   PARTITION HASH ALL
    TABLE ACCESS FULL Object owner=ZK Object name=CM_USER Cost=21458 Cardinality=4966 Bytes=74490后发现将SYSDATE改为SYSDATE-1,又恢复正常
select a.region_code,count(1) cnt from zk.cm_user a 
where a.create_date > trunc(sysdate-2)
and a.create_date < trunc(sysdate-1)
group by a.region_code
很快,查看计划,用到索引巨郁闷,请教各位高人,这是什么原因阿!

注:cm_user中大概800多万记录。