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

数据库_华为云电脑吃鸡_优惠

小七 141 0

MySQL数据库_鹏博士cdn_返现

大家好,

在为HANA迁移项目的套件工作时,作为一名ABAPer,我需要执行"代码修正"活动,并且必须对ABAP代码进行一些更改,企业开发软件,以避免迁移到HANA时出现潜在的功能问题。

最初,在开始我的项目活动之前,我参考了许多SAP博客和SAP学习中心的资料。现在,根据我的工作经验和来自多个SAP博客的参考资料,我准备了一份在进行补救和代码更改时要遵循的指南列表。我也有相同的看法。

1)问题:

如果使用SELECT SINGLE语句,并且WHERE条件不唯一,则结果将不明确。(要点:选择单个)

指南:

选择单个文件名称案例:检查WHERE子句是否对DB表的所有键字段都有"="或"EQ"检查。如果WHERE子句中的所有键字段都带有"EQ"或"="复选框,则select是唯一的,不需要"ORDER BY PRIMARY key"。但如果选择不是唯一的,则结果将是不明确的,应予以纠正。*****************************************************************************选择单个*案例:检查WHERE子句是否对DB表的所有键字段都有"="或"EQ"检查。如果WHERE子句中的所有键字段都带有"EQ"或"="复选框,则select是唯一的,淘客文案,不需要"ORDER BY PRIMARY key"。但如果选择不唯一,则结果将不明确,应予以更正。

建议解决方案:

选择单个文件名案例:如果需要,更正将是:

选择field1 field2…。从数据库表…。西澳州其中条件1…。按主键排序。出口。ENDSELECT.或

选择field1 field2…。最多1行到表itab的相应字段中从dbtable WHERE condition1…。按主键排序。将表itab读入wa索引1。************************************************选择单个*案例:如果需要,更正将是:

选择*最多1行…。从数据库表…。西澳州其中条件1…。按主键排序。ENDSELECT.或

从dbtable选择*表itab中最多1行其中条件1…。按主键排序。将表itab读入wa索引1.

2)问题:

依赖SELECT语句的隐式排序。(关键点:按主键排序)

指导原则:

有一种常见的观点,即SELECT语句返回按所用语句隐式排序的结果索引。另一个通常认为,云呢拿,池/集群表上的SELECT语句总是按主键排序返回。HANA遵循SQL标准。SQL标准不能保证数据库的隐式行为。SQL标准要求ORDER BY语句返回排序的结果集。

此问题可以在以下模式中找到:–阅读…。语句结果的二进制搜索–删除语句结果的相邻重复项–阅读表格…。索引…。–修改/删除SELECT语句结果的索引–删除语句结果的…FROM/TO–在itab FROM/TO处循环语句结果–在itab循环。在终点。对于语句的结果

建议的解决方案:

总是对DB查询的结果集进行显式排序

示例:选择*…。从数据库表…。进入表itab,大数据时代,其中条件1…按主键排序。

将表itab读入wa,大数据算法,使用键条件二进制搜索或从itab中删除相邻的重复项比较

3)问题:

尽量减少数据传输的次数(关键点:嵌套的SELECT循环和SELECT ENDSELECT循环)

准则:

此规则适用于数据库和应用服务器之间发生大量跳闸的情况。这妨碍了程序的执行。这样的编码实例需要通过使用连接来更改a) 而不是嵌套的选择循环,b) 避免SELECT ENDSELECT循环和c) 优先选择CRUD(创建、更新、删除)功能的数组操作。

建议解决方案

4)问题:

最小化搜索开销(关键点=1>选择单入环,2>选择无位置,3> MOVE-in-place-MOVE-CORRESPONDING

指南:

推荐解决方案

5)问题:

最小化数据传输量(要点1)避免选择*&2)使用聚合函数)

指南:

从数据库读取数据时,应用程序应仅获取数据以供进一步计算。业务逻辑上的条件应作为WHERE条件或过滤器进行传输,以减少获取的数据量。这可以通过a) 避免选择*,b) 使用MAX、SUM等聚合函数

推荐解决方案

6)问题:

HANA的ABAP优化:ABAP水平的变化–>这些指南建议在ABAP级别进行优化,而无需进入HANA modeler,可以从HANA中获益。

(要点=1)BAPI/FM在循环中,2)表缓冲区旁路和3)逻辑数据库使用)

指南:

建议解决方案

7)问题

HANA的ABAP优化:HANA级别的更改:为了从HANA中获得最大的好处,我们需要在modeler端创建工件,这可能需要使用存储过程和工件大量更改代码,而不是ABAP级应用程序编程。

**要点->>对所有条目限制使用>>在同一数据库表上重复点击>>嵌套选择/循环>>聚合使用>>货币转换格式

指南:

建议解决方案

8)问题

保持结果集较小(关键点=检查/退出循环)

指南:

不要从数据库检索记录,并使用检查或退出循环将其丢弃在应用程序服务器中。通过正确使用WHERE子句只检索必要的记录。这样,结果集就尽可能小,传输的数据量也就减少了。

建议的解决方案:

必须正确使用Where子句来限制不必要的记录传输到应用服务器

9)问题

访问物理表池/群集

指导原则: