对于有些查询语句有group by的时候特别慢。如:
group by wldmx.f_wlbh, wldmx.f_bgstad, wldmx.f_cpbh,sczl.f_scx,wldmx.F_CCPH,wldmx.f_fxrq
可以使用oracle的函数代替来提升查询的效率。看执行计划并不能看出有何区别。暂时还不知道原理:
使用distinct和
max (wldmx.f_scrq) over(partition by wldmx.f_wlbh, wldmx.f_bgstad,
wldmx.f_cpbh,wldmx.f_fxrq,sczl.f_scx,wldmx.F_CCPH)
来进行替代。查询效率显著提升。
当两个表行数比较大,数量级差不多的时候不要用nested loop,用hash比较快
exists会使用nested loop
表连接用到hash