首页 > 数据库 > Oracle > 记一条子查询的SQL优化
现在要汇总此表中小于某个时间的记录条数,SQL两种写法如下:
写法一:
select count(*) from a where date < to_date(\'20100101\',\'YYYYMMDD\') ;
写法二:
select count(*)
from ( select *
from a
where date < to_date(\'20100101\',\'YYYYMMDD\')
) ;结果发现:
写法一等了十多分钟都不见有结果出来,而写法二一分钟左右就出了结果。
原因应该是子查询先查出一个子结果集然后进行聚合操作,而非子查询的写法应该是边匹配边聚合
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1207956/ ,如需转载,请注明出处,否则将追究法律责任。