云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

轻量服务器_小游戏服务器_排行榜

小七 141 0

本博客的目的

如您所知,ABAP CDS View是saps/4HANA中重要的开发对象之一,它支持多种用途,包括事务或分析应用程序。abapcds视图利用底层hanadb的强大功能来提高性能。但是,有时性能不够好,需要进行一些微调。现在已经有一些非常好的博客和文档了。

维护ABAP CDS视图的性能

SAP TechEd 2017上SAP HANA上ABAP CDS的性能

等等

在这个博客中,我想首先回到基于ABAP CDS视图的查询性能分析的共同出发点。在介绍相对抽象的规则和技巧之前,总结一下CDS视图开发人员的一般方法可能会很有用。非常感谢Masaaki Arai的密切支持。

ABAP CDS视图运行时

虽然ABAP CDS视图是在ABAP存储库中开发和存储的,但运行时执行将被下推到HANA数据库中。下面是技术架构图。因此,我们需要重点分析数据库内部的执行情况。分析单个HANA SQL语句的性能有不同的工具,例如HANA性能跟踪、python跟踪等。我个人认为最有用的工具是HANA可视化计划。

如果你还不熟悉这个概念,请阅读这个博客。

ABAP Core Data Services@SAP TechEd 2015

重现问题和初始分析

不同的应用程序可以触发对ABAP CDS视图的查询或调用,例如,ABAP程序、SAP Fiori应用程序、SAP Analytics Cloud等报告工具、SAP Analytics应用程序。最后,ABAP堆栈总是触发abapcds视图的执行。因此,当特定情况下出现性能问题时,我将使用的第一个工具是事务代码"ST12"(Trace),它同时收集ABAP跟踪和SQL跟踪。ST12(ABAP trace)的一个函数提供了一个关于ABAP堆栈花费了多少时间和HANA DB层花费了多少时间的初步分析。然而,ABAP跟踪有时表明瓶颈也可以驻留在ABAP中。当然,这种方法的一个先决条件是,物联网技术及应用,大数据如何处理,我们需要知道从前端应用程序重现性能问题的确切步骤。

如果您不熟悉ST12跟踪工具,请参阅SAP说明

2436955–如何使用ST12跟踪进行分析的分步说明

在ABAP跟踪中,我们可以分别根据所花的净时间对通话进行排序。如果我们看到一些主要的时间花在DB上,商城返利系统,那么我们可以通过单击语句后面的链接"DB->"来导航到SQL跟踪。基于CDS视图的调用的典型模式是"FETCH statement"。

收集SQL语句

单击链接后,它会将我们带到相关DB调用的SQL摘要。在这里您已经可以看到一些重要的统计信息,例如,返回的总记录数。在某些分析案例中,会返回大量数据。这可能需要重新考虑应用程序的设计以及前端是否缺少合理的过滤器。在其他情况下,如果我们看到同一个SQL语句的执行次数很多,我们需要检查循环是否包含对ABAP程序中视图的调用,以及是否可以减少循环次数以避免对数据库的太多往返。

双击每个调用的条目。首先,您将看到完整的SQL语句,其中包含变量的占位符。复制以备以后使用。

点击执行最慢的条目,将显示带有值的语句。具有特定值的最慢执行可能是揭示问题的最具代表性的执行。同时复制此语句并从语句中收集值。

"文字"(特定值)和"绑定变量"(占位符)的概念用于变量)下面解释。有关更多详细信息,请参阅SAP Note 2000002–常见问题解答:SAP HANA SQL Optimization(23。如何确定准备好的SQL语句的细节?)

为了减少解析开销,在SAP ABAP:

等很多环境中都使用了绑定变量,这样结构相同但值不同的语句就不需要重新解析编译,云上,只要重用已有的计划即可

在执行计划方面会有很大的不同,使用显式文字或绑定变量执行SQL语句时的性能和资源消耗。因此,建议您以与ABAP堆栈相同的方式分析使用绑定变量的代价高昂的SQL语句,即也使用绑定变量。这就是为什么我们首先复制带有占位符的语句。

生成HANA可视化计划

要生成计划,我们将带有上一步提到的占位符的整个语句粘贴到HANA SQL编辑器中,该编辑器连接到SAP s/4HANA系统的基础数据库。请不要忘记手动维护会话变量,这些变量也会影响生成正确的查询计划。这些变量被用作ABAP调用的会话上下文。

例如,

SET SCHEMA SAPABAP1;

SET'CDS_CLIENT'='010';

SET'APPLICATIONUSER'='SAPSUPPORT';

SET'SAP_SYSTEM_DATE'='20200111';

您也可以为测试目的更改值。

在逗号分隔的行中准备变量的特定值并复制它们(ctrl C)。

然后,右击语句,选择执行可视化计划

请不要将下面的提示和范围限制排除在要跟踪的语句之外,因为它们也会对执行计划产生影响

带提示(无连接到AGGR,

RESULT_LAG('hana_long')WITH RANGE_RESTRICTION('CURRENT')

执行带占位符的语句后,弹出窗口询问变量值。然后右击语句添加参数值

粘贴准备好的值。按"确定"。

然后将值按其保留的顺序填入空格中。

单击右上角的"执行"按钮。然后生成可视化计划。

如果您的系统满足以下前提条件,

7.52 SP3(及更高版本)7.53 SP1(及更高版本)7.54所有SP

在ST05跟踪中(或从ST12跟踪导航到ST05跟踪),HANA计划viz可以直接收集。

请参阅本博客:SQL跟踪(ST05):SAP HANA计划可视化工具的增强。