优化orderby语句

数据库排序在很多业务系统都有这方面的硬性要求,但是很多情况下大数据表的排序查询很是缓慢,查了下资料,现在总结如下:

可以适当调大 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万数据的表用时间排序只需要几十毫秒。

 

但是在实际应用中还是有些问题,还需进一步研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值