日期:2014-05-16 浏览次数:20456 次
数据库排序在很多业务系统都有这方面的硬性要求,但是很多情况下大数据表的排序查询很是缓慢,查了下资料,现在总结如下:
可以适当调大 sort_area_size 的值( 10240000=10m )
alter system set sort_area_size=10240000 scope=spfile;
在10G中也可以直接调大PGA的最大值
alter system set pga_aggregate_target=512m scope=spfile
;
?
但这样做也只是提高了一点排序性能,还是达不到系统速度要求,查询要快,要见索引,所以我们帮排序字段建立上索引,但是要让orderby能调用到索引还需要一些严格的条件:
ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.
ORDER BY中所有的列必须定义为非空.
当我们设好以后,orderby的速度变得很快,完全达到系统的要求,1张400万数据的表用时间排序只需要几十毫秒。
?
但是在实际应用中还是有些问题,还需进一步研究。