背景: 客户反映某本报表运行效率极慢,需要进行优化,简单看了代码并且使用SAT分析后,定位了两个主要的问题,最主要的问题是合计数量的时候在LOOP循环中使用了SELECT SUM(*) FROM internal_table,而且还有很多个,导致当LOOP的本地内表条目比较大的时候,效率将会受到非常大的影响;其次是在循环中调用函数STATUS_TEXT_EDIT来获取订单文本,这个其实影响不算很
如管理学学者彼得·德鲁克所说:你无法管理你不能衡量的东西( If you can't measure it, you can't manage it)。要对已有程序进行性能优化,首先要对它的运行状况做出量化分析。 将代码下推到ABAP CDS,是SAP推荐的一种优化方式。但正因逻辑从应用服务器向数据库的转移,传统运行时分析工具SAT也有了力所不能及之处。这时,我们需要新的工具来对这一新的开发对象
取消与设置CDS本地排序 取消CDS本地排序. cds.IndexDefs.Update; if cds.IndexName<>'' then begin if cds.IndexDefs.IndexOf('index1')>=0 then cds.DeleteIndex('index1'); cds.IndexDefs.Clear;
取消与设置CDS本地排序 取消CDS本地排序. cds.IndexDefs.Update; if cds.IndexName<>'' then begin if cds.IndexDefs.IndexOf('index1')>=0 then cds.DeleteIndex('index1'); cds.IndexDefs.Clear;