前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAP 性能优化之---数据查询(常见办法)

SAP 性能优化之---数据查询(常见办法)

原创
作者头像
CINDYLI
修改2020-05-18 14:28:48
1.6K0
修改2020-05-18 14:28:48
举报
文章被收录于专栏:SAP

作者:李慧

公司:河南东泠电子科技有限公司

场景一:对于功能或者接口,所用到的透明表的数据两级达到千万、亿级时,功能运行缓慢或者接口数据传输慢甚至失败,如何解决

Solution1:Data Archiving(数据归档)

采取数据归档其实是最行之有效的方法。可以执行事务:SARA(数据归档的主要TCODE)、DB02性能分析(主要是对Performance,space等)

Solution2:建立索引

SE11,在表中,Create Index,这里创建索引的依据是where条件后面的字段,一般关键字段已经被sap默认创建了Primary Index。通过牺牲空间的形式,达到性能的提高。

Solution3:用Hint指定Index(采取此方法需谨慎,建议寻求标准的function来替代select,此处不再对各业务模块儿所涉及到的function进行说明)

Hint是Oracle提供的一种SQL语法,允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式,但是,如果你的Hint写错了,那么,在Oracle层呢,就会被当作注释处理掉。

ABAP中常见有两种用法:

1.全表扫描:%_HINTS ORACLE 'FULL("table_name")'

2.指定索引:%_HINTS ORACLE 'INDEX("table_name" " index_name")'

(注:在SQL代码中加入Hint,特别是性能相关的Hint是很危险的做法,写得不匹配反而拖累Performance。在执行该操作的时候,一定要谨慎。所以此处建议,能够使用标准的FM来解决数据的查询,就尽量不要使用select语句进行数据的查询)

而且,在使用select对多表查询的时候,

1、如果存在多表查询的时候,尽量通过维护VIEW,千万不要采用Select语句的嵌套方式,如select套select、loop多层嵌套且进行select;

2、或者使用Inner Join方式 ;

3、采取子查询的方式

相关Transaction Code:

ST05 性能分析,追踪SQL,分析哪条SQL Statement语句,最耗时间

STAD 得到某个程序或事务运行时的总体分析数据,系统时间,CPU时间等

SE30 分析某个事务或程序的执行时间,有一些性能分析的例子

对于项目中涉及到的具体问题,仍需结合实际情况进行具体的分析。本人坚持,能用标准不自己去select。此外业务逻辑的有效组织对开发者的技术设计也是至关重要的,这直接影响到如何将大数据按需拆分至小单元分类计算汇总,间接提升系统的运行速度。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档