请教ABAP性能优化-关于MSEG
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教ABAP性能优化-关于MSEG相关的知识,希望对你有一定的参考价值。
因为查询条件没有用到有索引的字段,所以报表要查询MSEG时候使用的特别慢,有时还慢的跑不出来。请问各位有什么好办法?谢谢?
参考技术A 第一种的话好象字段要求多也不是很现实,业务部门因业务需求很大程度上输入的查询条件都是比较少的。而且如果查询的字段不是有索引的,都会很慢。第二种精简表也只不过数据少点,如果没有索引,还是比较慢,而已还要再写个出口程序,会不会有问题啊?如果在MSEG上建多几个索引,这样会不会快点?建索引是在后台去建吧? 参考技术B 因为MSEG表的数据量本身就很大,而且相信你家公司有关生产、库存、财务的报表数据恐怕都来源于这张表吧。所以,建议你做个MSEG与MKPF的join。当然了,你做个视图也是可以的。从使用范围及长远来看,弄个简化表还是可行的。 参考技术C 简化表占空间,我倒觉得你说的视图可行。 做几个分别属于业务量大的工厂的MSEG视图,再根据查询条件给视图增加索引,这样不占空间。还有请问一下 SELECT mblnr matnrINTO TABLE t_mseg from mseg 会比SELECT mblnr matnrINTO CORRESPONDING FIELDS OF TABLE t_mseg from mseg快吗?我从SAP优化文档里看到的。但自己测试来看,好象差不了几秒。我测试都是拿MSEG来测的 参考技术D 你这种能不能快点呢?我没试过。索引是在哪建?SAP?ORACLE?还要加上%_hints oracle 'index(MSEG "ZINDEX") 吗?ABAP 内表的行列转换-NEW
REPORT Z_TEST_COL_TO_ROW.
TYPE-POOLS: slis.
TABLES: mseg,mkpf.
DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
DATA: sla TYPE slis_layout_alv ,
ivariant LIKE disvariant,
i_repid LIKE sy-repid ,
i_excluding TYPE slis_t_extab.
TYPES: BEGIN OF ty_sum ,
werks LIKE mseg-werks ,
matnr LIKE mseg-matnr ,
lgort LIKE mseg-lgort ,
bwart LIKE mseg-bwart ,
menge LIKE mseg-menge ,
END OF ty_sum.
DATA : itab TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
DATA : hs_sum TYPE HASHED TABLE OF ty_sum WITH UNIQUE KEY werks matnr lgort bwart WITH HEADER LINE .
DATA : itab_sum TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
DATA: BEGIN OF itab_out OCCURS 0,
werks LIKE mseg-werks ,
matnr LIKE mseg-matnr ,
lgort LIKE mseg-lgort ,
menge01 TYPE i ,
menge02 TYPE i ,
menge03 TYPE i ,
menge04 TYPE i ,
menge05 TYPE i ,
menge06 TYPE i ,
menge07 TYPE i ,
menge08 TYPE i ,
menge09 TYPE i ,
menge10 TYPE i ,
menge11 TYPE i ,
menge12 TYPE i ,
menge13 TYPE i ,
menge14 TYPE i ,
menge15 TYPE i ,
menge16 TYPE i ,
menge17 TYPE i ,
menge18 TYPE i ,
menge19 TYPE i ,
menge20 TYPE i ,
menge21 TYPE i ,
menge22 TYPE i ,
menge23 TYPE i ,
menge24 TYPE i ,
menge25 TYPE i ,
menge26 TYPE i ,
line_sum TYPE i ,
END OF itab_out.
TYPES: BEGIN OF ty_bwart ,
bwart LIKE mseg-bwart ,
END OF ty_bwart.
DATA : hs_bwart TYPE HASHED TABLE OF ty_bwart WITH UNIQUE KEY bwart WITH HEADER LINE .
DATA : itab_bwart TYPE STANDARD TABLE OF ty_bwart WITH HEADER LINE .
FIELD-SYMBOLS: <f_fs1> ,
<f_fs2>.
DATA: max_count TYPE i .
SELECT-OPTIONS:
s_mblnr FOR mseg-mblnr ,
s_budat FOR mkpf-budat .
PARAMETERS: p_sum AS CHECKBOX .
START-OF-SELECTION.
PERFORM getdata.
PERFORM fixdata.
IF p_sum = ‘X‘.
PERFORM outdata.
ELSE