博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何提高报表sql效率
阅读量:5848 次
发布时间:2019-06-18

本文共 614 字,大约阅读时间需要 2 分钟。

1、  能用基表达到目的的,尽量用基表。当然,需要用视图的,如HR模块涉及到权限控制时,必须用视图。

2、  索引,这个不在赘述。

3、  汇总的时候,如果是两次汇总,大汇总的字段可以由小汇总字段得出。如集团公司由它的二级部门写函数得出。所在在cursor里,可以只小汇总,如只按二级部门汇总,输出的时候才条件判断来进行大汇总。

4、  如果主cursor很庞大,可以将其分解成若干个小cursor,多写一些函数,也可以提高效率,分解主cursor

5、  循环cursor时:避免重复性的基于同值的计算。避免重复性的调用同参数的同函数,可以只计算一次,把结果赋给一个变量。如果是在cursor里,当汇总的时候,也是可以的只计算一次的。

6、  涉及到大数量时,用unionor效率高。

7、  分模块写pl/sql代码。有时候我们一段代码很多地方会重复用到,却是实现了相同的模块功能,为了以后维护的方便,直接将其写成一过程,重复调用。

8、  使用全局变量。当一个值需要通过计算获得时,可以在程序开头就将其计算出来,并将结果赋给一个全局变量,然后在包类重复调用该变量。

9、  自定义一个标准包。当我们有大量程序要开发时,如果这些程序会调用相同的函数或过程,我们可以将这些函数或程序,放在同一个标准包里,供项目组其他同事共同调用,提高开发效率,维护也方便。

10、参数及一些能大量减少数据量的WHERE条件,尽量写在WHERE最后边。

转载

你可能感兴趣的文章
KMeans (K均值)算法讲解及实现
查看>>
为什么不应该使用Zookeeper做服务发现?(转载)
查看>>
《JavaScript核心概念及实践》——2.2 变量
查看>>
关于java 1.8的Lambda表达式详解
查看>>
各个网站的CSS清除代码
查看>>
TableView的集合
查看>>
软RAID管理命令mdadm详解
查看>>
控制器 控制器view cell的关系
查看>>
Eclipse RCP 玩转 Spring
查看>>
我的友情链接
查看>>
Nginx的健康检查机制
查看>>
Nginx介绍及企业web服务软件选择
查看>>
计算机书籍备忘
查看>>
esxi虚拟机中系统克隆及迁移的方法
查看>>
Linux必学的62条命令 (4)
查看>>
App_Offline.htm 功能
查看>>
java之旅
查看>>
解决linux虚拟机不能上网的问题
查看>>
恢复Reflector反编译后资源文件的办法
查看>>
HandlerExceptionResolver异常解析器家族揭秘
查看>>