SELECT /*+ ordered */ COUNT (*)
FROM t_middle, t_small, t_max
WHERE t_small.object_id = t_middle.object_id
AND t_middle.object_id = t_max.object_id;
最后发现数据库查询优化的问题,
where …… and rl.date_value >= to_date(tt.month,'yyyy-MM') and rl.date_value < add_months(to_date(tt.month,'yyyy-MM'),1) ……
where …… and to_char(rl.date_value,'yyyy-mm') = tt.month ……
上面和下面这两天sql语句都是查询rl.date_value的时间在tt.month这个月份所有有关记录。。
通过大于或等于第一天并且小于第二个月的最后一天的这种方式,性能消耗极大。用第二种方式时间节省3倍以上。本来执行需要10秒多,修正后,大约一秒多就OK了。