一、编码规范上的优化
- for all entries in 使用时注意判空 排序;
- read table 时排序后使用二分法 即BINARY SEARCH;
- 避免loop循环嵌套,多采用read定位的形式;
- 递归时注意使用hashtable 读取内表,避免递归中嵌套select.
二、For all entries in 参数设置
在使用 for all entries in 时,ST05跟踪后 发现底层是拆分为多个sql statement,通过调整RZ11的参数,调整sql statement的个数 以此达到优化内表关联的效率;
三、使用with data
使用with data,采用临时内表直接操作hana数据库 优化查询效率 需要注意内存溢出问题
四、多线程 异步RFC
采用把部分逻辑包装成函数的形式,使用异步rfc调用,需要注意每个分包的执行时间不要过长。
五、合理运用CDS视图
在多表关联时,把大规模内表的SQL 封装成cds视图,从CDS视图取值
六、SAT性能分析
通过SAT对程序进行性能分析,具体定位到耗时的代码块,对代码逻辑分析;