Improving Performance of FOR ALL ENTRIES QUERY
来源:互联网 发布:淘宝无线设置宝贝分类 编辑:程序博客网 时间:2024/05/08 01:59
如何提高FOR ALL ENTRIES的查询性能主要从两个方面入手
1 对FOR ALL ENTRIES的驱动表按比较关键字排序;
2 删除FOR ALL ENTRIES的驱动表中比较关键字排序;
REPORT ZEXIT_HELP no standard page heading.
DATA: it_mara TYPE STANDARD TABLE OF mara,
wa_mara TYPE mara,
it_makt TYPE STANDARD TABLE OF makt,
wa_makt TYPE makt,
it_temp_mara TYPE STANDARD TABLE OF mara,
wa_temp_mara TYPE mara.
* Get all the records from MARA
SELECT * FROM mara
INTO TABLE it_temp_mara.
IF sy-subrc = 0.
IF it_temp_mara[] IS NOT INITIAL.
* Duplicate the driver table with the data
do 2 times.
append lines of it_Temp_mara to it_mara.
enddo.
IF it_mara[] IS NOT INITIAL.
* Select MAKT
perform select_makt.
*After Sorting
sort it_mara by matnr.
perform select_makt.
* After deleting duoplicateentries
DELETE ADJACENT DUPLICATES FROM it_mara COMPARING matnr.
perform select_makt.
ENDIF.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form select_makt
*&---------------------------------------------------------------------*
* Select data friom MAKT
*----------------------------------------------------------------------*
form select_makt .
DATA: t1 TYPE i,
t2 TYPE i,
tmin TYPE i.
refresh it_makt[].
GET RUN TIME FIELD t1.
SELECT *
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
GET RUN TIME FIELD t2.
tmin = t2 - t1.
tmin = tmin .
WRITE:/ ' Time(ms) = ', tmin.
Endform. "select_makt
测试结果
几个注意点:
1、有FOR ALL ENTRIES IN itab的不能使用order by;
2、如果 itab无数据,where语句就当没有条件处理;
3、系统自动删除重复纪录;
关于ranges和FOR ALL ENTRIES IN的使用大家可以参阅SAP的标准代码的使用方法,代码参见函数MRM_INVHEAD_MANY_READ,摘抄如下:
SORT t_lifnr.
DELETE ADJACENT DUPLICATES FROM t_lifnr.
DESCRIBE TABLE t_lifnr LINES count.
if count < 5000.
SELECT * FROM rbkp INTO TABLE t_rbkp
WHERE belnr IN t_belnr
AND gjahr IN t_gjahr
AND bukrs IN t_bukrs
AND bldat IN t_bldat
AND budat IN t_budat
AND lifnr IN t_lifnr
AND ivtyp IN rg_ivtyp.
else.
SELECT * FROM rbkp INTO TABLE t_rbkp
FOR ALL ENTRIES IN t_lifnr
WHERE lifnr = t_lifnr-low
AND belnr IN t_belnr
AND gjahr IN t_gjahr
AND bukrs IN t_bukrs
AND bldat IN t_bldat
AND budat IN t_budat
AND ivtyp IN rg_ivtyp.
endif.
- Improving Performance of FOR ALL ENTRIES QUERY
- Improving Performance of FOR ALL ENTRIES QUERY
- Performance of Using Keys in SELECT with FOR ALL ENTRIES
- Improving Performance for Wlan
- for all entries
- FOR ALL ENTRIES WHERE
- FOR ALL ENTRIES IN
- FOR ALL ENTRIES IN
- for all entries in语句
- FOR ALL ENTRIES IN 使用指南
- For All Entries In 注意事项
- FOR ALL ENTRIES 使用注意事项
- ABAP "FOR ALL ENTRIES IN"
- ABAP "FOR ALL ENTRIES IN"
- ABAP "FOR ALL ENTRIES IN"
- ABAP "FOR ALL ENTRIES IN"
- Improving the performance of JDeveloper 11g
- 7 Tips for Improving MapReduce Performance
- Asp.net生成htm静态文件的两种途径
- IL文件修改高篇
- 面對技術...是熱情還是生活?
- ArrayList的使用方法
- css布局小技巧---1:有一侧宽度固定,另一侧随浏览器及分辨率改变而改变的css页面布局
- Improving Performance of FOR ALL ENTRIES QUERY
- 工作流理论
- 使用alter修改oracle表字段
- ASP.NET中的命名空间的简单介绍
- 开始篇
- eclipse项目的打包发行
- java面试题目1
- web.config文件详解
- 让Reflector不能正常工作