一种基于HANA数据库利用SLT组件对ABAP程序优化的方法与流程

文档序号:12063820阅读:613来源:国知局

本发明涉及一种程序优化技术,具体地说是一种基于HANA数据库利用SLT组件对ABAP程序优化的方法。

技术背景

SAP系统:SAP公司研发的企业级ERP管理系统,包含人财物等多个模块。SAP公司:德国一家软件公司名称,其开发的管理软件命名为SAP,广泛在世界范围内使用,其本身提供基于ABAP语言的二次开发平台。SAP系统作为目前世界排名第一的ERP软件已被世界范围的众多企业接受并推广使用。SAP平台为用户提供了强大的业务管理解决方案。多年来磁盘数据库一直是SAP系统的底层数据平台。作为传统的磁盘数据库依赖硬盘实现数据存取,硬盘、内存及CPU之间的数据传递导致数据访问、处理速度大大减慢。利用内存数据库能大大提升I/O速度,从存取时间上看磁盘数据库能达到QUOTE 秒,而内存数据库能达到 QUOTE 秒。因此,基于内存数据库可以对传统SAP系统进行程序性能的优化。

SAP公司已经发布了基于HANA内存数据库平台的S/4 HANA产品,其为将传统ERP功能搭建在HANA内存数据库平台之上,从而实现对ERP整体性能的提升。然而对已经使用SAP公司ECC系列的产品的企业来说,想轻松升级到S4 HANA并非易事,需要耗费大量的系统迁移时间,以及人力和财力。



技术实现要素:

为了克服现有技术存在的问题,本发明的目的在于提供一种基于HANA数据库利用SLT组件对ABAP程序优化的方法,该方法通过SLT组件产品实现将SAP数据实时同步到HANA系统,再利用HANA内存数据库实现SAP程序性能优化,从而达到程序性能提高的目的。主要包括SLT组件产品的应用;HANA内存数据库的应用;以及SAP中使用ABAP语言通过DBCO方式读取HANA内存数据库的方法。

本发明的目的通过以下技术方案实现:

一种基于HANA数据库利用SLT组件对ABAP程序优化的方法,其特征在于该方法包括以下步骤:

1)梳理需要优化的程序,得到涉及数据获取的数据库表清单;

2)上述数据库表清单中对程序性能影响较大的做相应标记,便于后续使用;

3)在对源程序进行分析时,如果涉及到非数据库SQL语句取数据的,则改造成使用SQL语句进行取数;

4)对梳理的数据库表清单,并且标记为对程序性能影响较大的数据库表,在SLT组件中进行配置,使数据表内容可以由SAP系统通过SLT组件实时复制到HANA内存数据库中。

本发明步骤3)中,涉及到非数据库SQL语句取数据为标准函数,则分析标准函数的取数逻辑,并且改造成使用SQL语句进行取数;借助于功能代码ST05,进行SQL跟踪,分析标准函数所涉及数据库表。

步骤4)中,具体如下:

(31)SAP系统提供RFC链接账号,并具有数据库操作和运行后台程序的权限;

(32)HANA内存数据库系统提供链接账号,并且具有数据库读写表、创建数据库表的权限;

(33)SLT配置的源系统为SAP系统,链接方式为SAP RFC链接;

(34)SLT配置的目标系统为HANA内存数据库;链接方式为SAP DBCO;

(35)SLT配置的数据库表复制选项为实时复制。

(36)以上配置完成以后,当配置的数据库表数据在SAP系统发生变化的时候,数据经过SLT组件实时同步进HANA内存数据库,SAP系统利用ABAP程序通过DBCO方式连接到HANA内存数据库中获取数据,从而实现数据获取的效率提升。

上述步骤(36)中,具体如下:

(41)SAP系统的数据变化实时传入到HANA内存数据库中;

(42)HANA内存数据库为SAP系统分配用户,权限则读取响应的数据表;

(43)SAP系统创建DBCO连接,目标为HANA内存数据库;

(44)在ABAP程序代码中,将数据获取的SQL语句添加CONNECTION关键字,变量为DBCO配置的链接名;

(45)通过以上步骤,ABAP程序实现不进行系统升级的情况下,使用HANA内存数据库解决程序性能慢的情况。

ABAP:是一种解释型开发语言,只能运行于SAP平台之上。HANA:SAP公司研发的内存数据库平台,其为兼容列式存储和行式存储多种存储方式。SLT(SAP LT Replication Server)组件:SAP公司提供的基于数据库触发器的一种数据传输平台。DBCO:SAP链接数据库的一种方式,支持目前市场上主流的多种数据库产品。ST05:SAP系统一种功能代码,只要在命令框输入此代码即可执行对应的程序。RFC链接:SAP系统S/4 HANA:SAP公司新的ERP产品,其搭建于HANA内存数据库之上,运行速度快,系统架构简单。

本发明在ABAP程序中,将数据获取的SQL语句,从SAP系统数据库服务器的透明表中,转移到HANA内存数据库中执行,使得数据检索变得更加快速,从而实现对SAP程序性能的优化作用,同时因需要保证内存数据库平台与SAP系统本身数据的一致性,需要引入数据实时同步产品组件SLT(SAP LT Replication Server),在SAP系统和HANA内存数据库系统间进行实时的数据同步。

本发明的有益的效果如下:

通过本发明,利用SLT组件产品可以实现SAP系统数据实时同步到HANA内存数据库中,达到分析数据库(HANA内存数据库)、业务数据库(SAP传统数据库)两个数据库系统数据实时同步的目的,避免数据延迟。

通过本发明提出的DBCO技术,实现ABAP程序读取HANA数据库的方法。

通过内存数据库的数据检索效率,从而达到在SAP中利用ABAP语言通过DBCO技术实现对SAP本身程序性能提升的效果。

附图说明

图1是本发明涉及的系统之间的关系图。

具体实施方式

图1是本发明涉及的系统之间的关系图。其中:SAP系统与SLT复制服务器的链接方式为RFC方式;SLT复制服务器与HANA内存数据库之间的链接方式为DBCO方式;SAP系统与HANA内存数据库之间的链接方式为DBCO方式。一种基于HANA数据库利用SLT组件对ABAP程序优化的方法,具体如下:

1)梳理需要优化的程序,得到涉及数据获取的数据库表清单;

2)上述数据库表清单中对程序性能影响较大的做相应标记,便于后续使用;

3)在对源程序进行分析时,如果涉及到非数据库SQL语句取数据的,如标准函数,这时需要分析标准函数的取数逻辑,并且改造成使用SQL语句进行取数。

可以借助于功能代码ST05,进行SQL跟踪,分析标准函数所涉及数据库表;

4)对梳理的数据库表清单,并且标记为对程序性能影响较大的数据库表,在SLT组件中进行配置,使数据表内容可以由SAP系统通过SLT组件实时复制到HANA内存数据库中。具体如下:

SLT为SAP公司的成熟产品组件,其具体操作及实现方式不在本发明中叙述;

SAP系统提供RFC链接账号,并具有数据库操作和运行后台程序的权限;

HANA内存数据库系统提供链接账号,并且具有数据库读写表、创建数据库表的权限。

SLT配置的源系统为SAP系统,链接方式为SAP RFC链接;

SLT配置的目标系统为HANA内存数据库;链接方式为SAP DBCO;

SLT配置的数据库表复制选项为实时复制。

在以上配置完成以后,当配置的数据库表数据在SAP系统发生变化的时候,数据会经过SLT组件实时同步进HANA内存数据库,SAP系统可以利用ABAP程序通过DBCO方式连接到HANA内存数据库中获取数据,从而实现数据获取的效率提升。具体如下:

SAP系统的数据变化实时传入到HANA内存数据库中;

HANA内存数据库需为SAP系统分配用户,权限需要读取响应的数据表;

SAP系统需创建DBCO连接,目标为HANA内存数据库;

在ABAP程序代码中,将数据获取的SQL语句添加CONNECTION关键字,变量为DBCO配置的链接名,以下代码中的例子为“AB1”

SELECT * FROM sflight CONNECTION ('AB1')

INTO TABLE lt_sflight

WHERE carrid = 'LH'.

通过以上步骤,ABAP程序可以实现不进行系统升级的情况下,使用HANA内存数据库解决程序性能慢的情况。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1