大家都知道for all entries in 关联内表时,要先判断内表不为空 否则会扫描全表,非常消耗服务器内存资源,那么内表关键字段的排序和排重对查询效率有没有影响呢?下面看一个例子
程序代码:

  1. DATA: it_mara TYPE STANDARD TABLE OF mara,
  2. wa_mara TYPE mara,
  3. it_makt TYPE STANDARD TABLE OF makt,
  4. wa_makt TYPE makt,
  5. it_temp_mara TYPE STANDARD TABLE OF mara,
  6. wa_temp_mara TYPE mara.
  7. * Get all the records from MARA
  8. SELECT *
  9. UP TO 100 ROWS
  10. FROM mara
  11. INTO TABLE it_temp_mara.
  12. IF sy-subrc = 0.
  13. IF NOT it_temp_mara[] IS INITIAL.
  14. * 具有重复数据的内表
  15. DO 1000 TIMES.
  16. APPEND LINES OF it_temp_mara TO it_mara.
  17. ENDDO.
  18. IF NOT it_mara[] IS INITIAL.
  19. * Select MAKT
  20. WRITE:/'内表中数据未经排序排重'.
  21. PERFORM select_makt.
  22. * 排过序的内表
  23. WRITE:/'内表中数据已排序未排重'.
  24. SORT it_mara BY matnr.
  25. PERFORM select_makt.
  26. * 删除了重复数据的内表
  27. WRITE:/'内表中数据已排序并排重'.
  28. DELETE ADJACENT DUPLICATES FROM it_mara COMPARING matnr.
  29. PERFORM select_makt.
  30. ENDIF.
  31. ENDIF.
  32. ENDIF.
  33. *&---------------------------------------------------------------------*
  34. *& Form select_makt
  35. *&---------------------------------------------------------------------*
  36. * Select data friom MAKT
  37. *----------------------------------------------------------------------*
  38. FORM select_makt .
  39. DATA: t1 TYPE i,
  40. t2 TYPE i,
  41. tmin TYPE i.
  42. REFRESH it_makt[].
  43. GET RUN TIME FIELD t1.
  44. SELECT *
  45. FROM makt
  46. INTO TABLE it_makt
  47. FOR ALL ENTRIES IN it_mara
  48. WHERE matnr = it_mara-matnr.
  49. GET RUN TIME FIELD t2.
  50. tmin = t2 - t1.
  51. tmin = tmin .
  52. WRITE:/ ' Time(ms) = ', tmin.
  53. ENDFORM.                    "select_makt

复制代码

由上边的执行时间分析,可以得出以下结论:

内表排序和排重都能提高[FOR ALL ENTRIES]查询的效率

1、使用FOR ALL ENTRIES IN时内表中不要有重复的数据
2、对内表进行排序
特别注意第二点,容易被忽略
注意:这里的时间给错了,是us,不是ms毫秒

FOR ALL ENTRIES IN内表排序、排重对性能的影响相关推荐

  1. 汇总内表数据:at end of方法和collect方法

    ABAP开发中经常会遇到需要汇总内表中数据的情况,下面介绍两种方法:at end of和collect. 1.at end of方法    在使用loop循环读取已排序的内表时,可以访问两个自动生成的 ...

  2. ABAP~ 内表操作

    内表是每个ABAP开发人员都必须懂的,数据从R3取出来后,就是放在内表里处理的,其实就是Java中的集合框架,只是没有那么多不同数据结构的内表,目前只有标准.排序.Hash三种,这还是新的语法,老的只 ...

  3. abap内表的操作汇总

    abap内表是abap开发中最常用的工具之一 这里总结一个常用的一些操作,以后可以直接复制使用 1,定义 参考字段定义 DATA:BEGIN OF i_list OCCURS 0 ,   matnr ...

  4. FOR ALL ENTRIES IN 与 INNER JOIN 内表

    1.区别 FOR ALL ENTRIES IN 与 INNER JOIN 内表,目的都是通过内表找数据库表与之对应的数据,但是有区别. 1.1.写法 FOR ALL ENTRIES IN " ...

  5. Excel按照单元格内设定好的次序进行工作表排序

    如下图所示,Excel如何按照单元格内设定好的次序进行工作表排序呢,接下来请看小编的操作吧 (方方格子插件) 1.先看动图演示吧 2.那我们可以选择方方格子按钮的操作 3.注意这里要选择的是工作表操作 ...

  6. 【04】SAP ABAP性能优化 - 如何选用内表类型(STANDARD, SORTED, HASHED)?

    ABAP提供了三种类型的内表, 即:标准表(Standard Table), 排序表(Sorted Table), 哈希表(Hashed Table).在未声明内表类型时,系统会将类型默认为标准表. ...

  7. 比较有意思的比较内表的小函数

    包       :CT 函数组:CTVB 函数模块:CTVB_COMPARE_TABLES CALL FUNCTION 'CTVB_COMPARE_TABLES' EXPORTING table_ol ...

  8. ABAP几种内表的操作

    ABAP几种内表的操作 这次的程序用到了哈希表,在这里,也顺便总结一下ABAP三种内表的特点. ABAP中有三类内表,标准表,排序表和哈希表. 三种内表介绍 标准表的每一行对应一个逻辑索引-SY-TA ...

  9. SAP ABAP ALV构建动态输出列与构建动态内表

    首先,简单说明一下要用到的表类型.类.函数: 表类型 LVC_T_FCAT-(存放自定义列属性的表类型,一般用到的属性有:FIELDNAME.OUTPUTLEN.DATATYPE.INTTYPE.IN ...

最新文章

  1. oracle schedule stop,Oracle调度Schedule特性(第八部分)-Windows和Window Groups
  2. 正则表达式基础(一)
  3. DBSNMP和SYSMAN用户初始密码及正确的修改方式
  4. python官网下载安装教程-Python和Anoconda和Pycharm安装教程
  5. 插入顶部_声屏障顶部斜插式安装可获得10-25dB的降噪量
  6. rabbitmq安装与配置(windows)亲测有效!!!
  7. Nginx+Tomcat+Memcached实现tomcat集群和session共享
  8. windows 2008 终端服务器配置,windows 2008终端服务器设置
  9. 中国最富包租婆!每年坐地收租200亿,身家相当于十个老干妈
  10. vue 组件模板template定义时的注意事项
  11. python就业方向-目前Python这么火,Python有哪些就业方向?
  12. 没事学学docker:解决dockerfile出现的Error: Failed to download metadata for repo ‘appstream‘: Cannot prepar
  13. CentOS 7搭建tengine+php+mariadb环境并安装discuz论坛
  14. 前端的长度单位有哪些
  15. IOI 2011 Tropical Gardens Race Ricehub
  16. 基于HTML、CSS、JavaScript、jQuery的app小项目--简易备忘录
  17. Java学习笔记-IO
  18. 淘淘商城第39讲——使用Spring来管理单机版Redis与集群版Redis
  19. 地理坐标系_GCS汇总
  20. 解析程序化中的机器人的算法写作

热门文章

  1. 熟悉Redhat 9.0
  2. 99%的产品经理不知道的秘密:如何招程序猿喜欢?
  3. 豆果美食,把人们带回厨房
  4. TableStore:单行操作
  5. Java 11 究竟比 8 快了多少?看看这个基准测试
  6. 网络部署加实验步骤( 续)
  7. 超融合与传统架构真正的区别在哪?
  8. Lightoj-1356 Prime Independence(质因子分解)(Hopcroft-Karp优化的最大匹配)
  9. 对多个button触发enter操作,执行不同的操作
  10. 【Spring实战4】04---装配Bean(自动装配)