提高BSEG处理效率
来源:互联网 发布:mac 卸载工行网银助手 编辑:程序博客网 时间:2024/05/18 14:46
这篇文章我们就来谈谈如何高效地对BSEG进行访问处理。
对於簇表来说,在数据库中没有与之同名的实体物理表相对应,所以虽然其可在ABAP中使用,但还是有一些限制的:
1. 不能使用Select distinct语法
BSEG中的字段存储在VARDATA中,所以不能使用distinct语句对单个项目去除重复。
2. 不能使用Native SQL
在数据库中没有与之同名的实体物理表相对应,所以不能使用Native SQL 对BSEG操作。
3. 不能使用Order by 语法
BSEG中的字段存储在VARDATA中,所以不能使用Order by语句对单个项目排序。
4. 不能再追加创建索引
BSEG中的字段存储在VARDATA中,所以不能再追加创建索引。
除此之外,对BSEG的访问要使用主键项目,如果没有主键项目虽然语法调试能够通过,但是程序执行起来,耗时长,效率低,而且随着业务量的增加执行时间问题会越发严重,甚至导致程序不能正常执行结束。
那么如果当键值不足时怎么办呢?回答,使用二次索引透明表,具体方法如下描述。
比如和销售凭证有关的业务,根据销售凭证编号和明细编号,选取相关会计凭证明细信息。
SELECT *
FROM BSEG
WHERE VBEL2 = 'XXXXXXXXXX' “ 销售凭证编号
AND POSN2 = 'YYYYYY'. “ 销售凭证明细编号
在这个例子中,对BSEG的检索条件中因为没有主键项目,所以执行起来,程序很慢。
变通的方法:
1)首先根据销售凭证编号和明细编号,从BSID中检索出未清帐明细行项目。
SELECT BURKS
BELNR “ 财务凭证编号
GJAHR “ 会计年度
BUZEL “ 会计凭证中的行项目
FROM BSID
INTO TABLE TAB_KEY
WHERE VBEL2 = 'XXXXXXXXXX'
AND POSN2 = 'YYYYYY'.
2)再根据销售凭证编号和明细编号,从BSAD中检索出已清帐明细行项目。
SELECT BURKS
BELNR “ 财务凭证编号
GJAHR “ 会计年度
BUZEL “ 会计凭证中的行项目
FROM BSAD
APPEND TABLE TAB_KEY
WHERE VBEL2 = 'XXXXXXXXXX'
AND POSN2 = 'YYYYYY'.
3)然后再根据上面检索出的主键列表,从BSEG中检索出相应的明细行项目。
SELECT BSCHL
4)这么处理之所以能够提高效率,关键还得对透明表BSID和BSAD追加以VBEL2(销售凭证编号)和POSN2(销售凭证明细编号)为键值的索引(对于透明表可追加索引)。
这样一来,1)和2)步骤地操作有索引,3)步骤的操作有全主键项目,检索速度应该有保证。
采购方面的业务、物料方面的业务等都可如法炮制。
最后需要说明一点,不是所有的SAP体统都可以使用这种方法,能否使用取决于R/3系统的设计和配置。所以在试图使用该方法时应充分调查相关透明表与BSEG中的纪录是否相符,别速度提高了,结果处理对象范围减小了或增大了,那就与初衷背道而驰了,效率的提升一定要在确保业务数据正确的基础上再加以考虑。
SAP R/3系统中也有几个专门用来读取BSEG表信息的函数,可适当参考使用,它们是:
另外最有效率的方法是改善你的应用和需求,要使需求合理规范,这才能使效率达到最高化。
- 提高BSEG处理效率
- 提高BSEG处理效率
- 提高BSEG处理效率
- 提高BSEG簇表处理效率
- 提高BSEG取值表效率
- 提高数据库处理效率
- BSEG
- 用异常处理来提高程序效率
- 用消息发送队列提高网络应用处理效率
- 三个提高Oracle处理大量数据效率的有效途径
- 提高oracle MVLOG的处理效率的方法分享
- 手动调整SSAS Cube并行处理值提高运行效率
- 如何提高perl处理大文件的效率
- 用C++为nodejs 写组件,提高node处理效率
- 使用outlook快速步骤功能提高邮件处理效率
- mysql处理上百万条的数据库如何优化语句来提高处理查询效率
- 如何提高阅读效率
- 如何提高编码效率
- addr2line
- 创建型模式之简单工厂模式
- 第一个TV与HK同时执行无干扰
- ANSI C 对 K&R C 的修订
- MFC消息响应机制分析
- 提高BSEG处理效率
- Makefile的使用方法心得(1)
- mysql 使用命令修改密码 +wamp的mysql
- 数据按年、月、星期进行分组
- QComboBox下拉列表添加复选框及消息处理 .
- jboss as 6 配置log4j发送错误日志文件
- 笔试面试常考数据结构-单链表常用操作编程实现
- mmap学习
- 腾讯公司后台服务器经典面试题