列表性能优化

列表功能在oracle中通常由两个语句完成,一个查询第x-y行的明细,第二个查询完成总的数量、合计数据的查询。

性能主要是在第一个语句,常用的sql方法是根据rownum取第x-y行的明细数据。

提高性能的方法大致总结如下,不是sql级别,而是功能应用级别。

1)不加排序。Order by很浪费资源,导致功能速度很慢,一般加order by和不加,速度能相差7/8倍。因此,有些功能考虑不加order by

2)某些情况不加排序。在一些查询出的总的数据量比较大的情况下,查看列表的明细数据是没有业务意义的,如数据超过100条,看明细意义就不大。因此可以考虑先查询总的数量,执行第二个语句,然后根据总的数据量判断是否要加order by。如总的数据量大于100条时就不加order by,小于100条就加order by

3)只查部分关联表。这种情况发生在多表关联,而其中有的表只在列表明细数据中显示使用,而不在查询条件的范围内。可以的办法是先不包括该表进行查询,查询出需要的明细数据。然后再根据明细数据的关键信息,查询该表的数据,拼接到明细数据中。

4)计算函数的使用。有些列表的显示项是采用函数或某些自定义公式计算出来的,浪费了大量的资源。因此这些函数就不要在所有的数据中使用,而只在需要显示的明细数据中使用。

5 )不分页。这种情况不查询汇总的数据,也就不能分页。当然不是指显示所有的数据,而是只显示第一页的数据。原来是两个查询语句,这种情况下是一个语句,减少了查询任务。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值