SAP报表的性能优化SAP报表的性能优化
来源:互联网 发布:淘宝商家激活实名认证 编辑:程序博客网 时间:2024/04/29 11:25
有时我们所能用的查询条件不是很理想,比如查询LIKP却必须用公司代码,而非销售组织。
此时普通做法是用表LIKP与TVKO根据VKORG进行联接,从而限制TVKO~BUKRS的值。
还有一种有效的办法是,通过TVKO查询到当期公司代码所对应的全部销售组织,从而组建一个RANGE出来,再根据此RANGE查询LIKP。
提示:DATA r_vkorg TYPE RANGE OF likp-vkorg.
SIGN = ‘I’, OPTION = ‘EQ’, LOW = ‘XXXX’ 即可往r_vkorg中放入多个单值。
假设我们有个内表代表销售订单的行项目,该内表有10万行。此时我们要根据LIPS的VGBEL和VGPOS,查询这些订单行项目对应的交货单行项目。
如果用SELECT SINGLE的话写法很简单:
LOOP AT it_vbap INTO wa_vbap.
SELECT SINGLE vbeln posnr
FROM lips INTO (wa_vbap-vbeln_vl, wa_vbap-posnr_vl)
WHERE vgbel = wa_vbap-vbeln AND
vgpos = wa_vbap-posnr AND
vgtyp = ‘C’.
MODIFY it_vbap FROM wa_vbap.
ENDLOOP.
如果用For All Entries则写法分2步:
SELECT vbeln posnr vgbel vgpos
FROM lips INTO TABLE it_lips
For All Entries IN it_vbap
WHERE vgbel = it_vbap-vbeln AND
vgpos = it_vbap-posnr AND
vgtyp = ‘C’. “此交货单是根据订单创建的
LOOP AT it_vbap INTO wa_vbap.
READ TABLE it_lips INTO wa_lips WITH KEY vgbel = wa_vbap-vbeln
vgpos = wa_vbap-vgpos.
IF sy-subrc = 0.
wa_vbap-vbeln_vl = wa_lips-vbeln.
wa_vbap-posnr_vl = wa_lips-posnr.
MODIFY it_vbap FROM wa_vbap.
ENDIF.
ENDLOOP.
对于SELECT SINGLE而言,由于LIPS有个VGB的SAP自带索引,每次查询都挺快,即便循环10万次,速度虽然快不了但也没什么大的危害。
对于For All Entries的第一步,的确比SELECT SINGLE快些,本来10万次的SELECT SINGLE,变成了1万次的查询(如果BASIS设置了参数为10),每次查询10个订单行项目。但是第二步就很慢了, 暂估it_lips为8万行,则每个READ TABLE语句平均需要4万次才能搜索到it_lips的目标行。由于it_vbap有10万个行项目,我们一共需要搜索40亿次,太慢了!
在此针对For All Entries的使用提出几点意见:
(1)如果是根据某数据量大的内表用For All Entries读取数据量小的配置表,比如TVAK/T006等,那不如把For All Entries直接去掉,把表里的几十条数据全部取出。
(2)使用For All Entries时,SELECT语句后面的字段必须包含所查表关键字段。比如上面的vbeln/posnr就是lips的关键字段。如果不含关键字段,比如SELECT lfimg FROM lips For All Entries ***,那么当LIPS中两个条目关键字段不同而lfimg相同时,会被SAP自动过滤掉一条。
- SAP报表的性能优化SAP报表的性能优化
- ABAP:SAP报表性能的优化
- ABAP:SAP报表性能的优化
- ABAP:SAP报表性能的优化
- 优化报表查询的性能
- 皕杰报表的性能优化
- SAP ABAP性能优化
- SAP ABAP程序性能优化
- SAP ABAP程序性能优化
- SAP ABAP程序性能优化
- 几个常用的报表服务器性能优化方法
- 几个常用的报表服务器性能优化方法
- sap的几个报表工具
- sap的几个报表工具
- sap的几个报表工具
- sap的几个报表工具
- 报表性能优化方案之报表服务器优化基础讲解
- SAP ABAP程序性能优化 2
- Oracle 一次 锁表 处理小记
- flex中Popup窗口访问父窗口的4种方法以及相互传值
- HDU3535 AreYouBusy 混合分组背包
- C# 仿机械仪表显示控件(原创)
- Swt/Jface的dialog 分类总结&详细编程
- SAP报表的性能优化SAP报表的性能优化
- css中超级链接样式的设置顺序
- IIS 不能启动的问题
- C# LED显示控件(原创)
- 工作中怎样提升自己
- 建模语言-UML
- SQL Server 常用技术收集
- Libevent Tip
- ABAP:判断是否汉字