在您开始阅读本博客之前,最好先阅读博客系列。
在进行优化之前,SAP HANA迁移后,现有的自定义代码应该是预期的结果。一般来说,除非
以上检查可以使用功能检查来识别,否则在迁移之后,定制代码应该像预期的那样完美地工作。SAP提供了识别这些问题的工具,并对该工具提出了建议,以纠正这些问题,使其按预期工作。
以上源代码显示了在SQL查询中使用DB提示的示例。DB提示(来自Oracle DB)正在强制SQL查询以使用在DB级别定义的索引,这意味着SAP HANA迁移后,大数据与数据挖掘,此索引将无效并导致功能问题。
请查看从表"EKPO"读取数据的代码,该表在迁移前是群集/池表。迁移到SAP后HANA此表变为透明表。编写代码是为了从表"EKPO"中获取记录。下面的语句使用二进制搜索读取内部表"IT\u BKPF"。二进制搜索,需要按键属性排序的内部表。否则,搜索失败。在迁移到saphana之前,代码运行得非常好,淘客小程序,因为默认情况下,内部表"IT\u BKPF"是按集群/池表的隐式行为排序的。迁移到SAP HANA后,由于内部表"IT\u BKPF"未排序,此语句失败。因此,在对内部表使用二进制搜索之前,需要显式排序(至少基于主键),以确保迁移的报表/自定义代码的输出结果相同。
选择
awkey
gjahr
belnr
xblnr
bldat
FROM bkpf"绕过缓冲区
到表it的相应字段\U bkpf
中的所有条目lt\ U invoice\ U details
其中
gjahr=lt\ U invoice\ U details-gjahr和
xblnr=lt\ U invoice\ U details-xblnr和
awkey=lt\ U invoice\ U details-awkey.
"……一些计算
读取表it\ U bkpf,其中键gjahr=invoice\ U details-gjahr
xblnr=invoice\ U details-xblnr
awkey=invoice\ U details-awkey
二进制搜索
传送带bldat.
如果sy subrc=0.
"进一步计算
ENDIF.
SAP提供了在迁移到SAP HANA期间识别此类问题的工具。ATC(ABAP测试驾驶舱)工具有助于识别功能问题。
代码检查器工具有助于识别功能问题和潜在性能问题。这些检查是基于自定义代码的静态检查。SAP改进了代码检查器工具,通过更多的检查来识别迁移到SAP HANA后可能出现的功能问题。对于SAP HANA,ATC是准备自定义代码以确保功能正确性和检测自定义代码以进行潜在优化的工具。
代码检查器工具可用于轻松查找所有功能问题。下图显示了添加到工具的新检查及其用途。在类别下添加了新的检查,
博客系列将讨论自定义代码管理的不同阶段,如下所示。
对所有条目使用的少数原因之一是如果其中一个表是集群表。对哈娜来说,这个理由已经不复存在了。所以BKPF的读取现在应该是一个内部连接。。。您的解决方案涉及排序和二进制搜索。为什么不将T_BKPF定义为一个散列表(如果你需要一个非唯一键,也可以进行排序)。
这些结构只存在了15年或更长的时间,数据更新,所以为什么偏执于二进制搜索,我真的不知道-除了选择正确的表类型可能需要一些分析思考…
嗨,马修,
我同意你的观点,返利app是真的吗,这段代码是展示函数正确性的一个例子。您给出的方法对"HANA"数据库有效。但是在迁移过程中,全球云购,除非我们继续找出我们优化的报告,否则我们通常不会更改代码(如您所提到的)。但我们有责任确保HANA DB迁移后所有现有报告的结果与之前相同。因此,在内部表上使用二进制搜索,前提是内部表已排序(因为它来自集群表)。但在迁移之后,源表变为透明表,排序不确定。因此,这种表在使用二进制搜索时读取,我们应该确保表是按关键字段或必要属性排序的。
注意:当您开始优化时,此代码可能会变得无效,因为我们可能会进行代码下推。