ABAP内表两种DELETE方式的性能比较
性能 方式 比较 两种 ABAP delete 内表
2023-09-14 09:02:49 时间
REPORT ZDELETE_COMPARE.
* Jerry 2016-12-4 20:28PM - what is result ? :( on Aircraft from Frankfort to Beijing
PARAMETERS: num type i OBLIGATORY DEFAULT 100.
types: begin of ty_product,
id type comm_product-product_id,
text type string,
end of ty_product.
data: lt_product type STANDARD TABLE OF ty_product,
lt_product1 LIKE lt_product,
lt_compare type STANDARD TABLE OF comm_product-product_id,
lt_range type RANGE OF comm_product-product_id,
lv_start TYPE i,
lv_end TYPE i.
FIELD-SYMBOLS: <product> TYPE ty_product,
<range> LIKE LINE OF lt_range.
START-OF-SELECTION.
PERFORM generate_main_tab.
PERFORM solution1.
PERFORM solution2.
ASSERT lt_product = lt_product1.
FORM generate_main_tab.
DO num TIMES.
APPEND INITIAL LINE TO lt_product ASSIGNING <product>.
<product>-id = sy-index.
<product>-text = sy-index.
APPEND INITIAL LINE TO lt_product1 ASSIGNING <product>.
<product>-id = sy-index.
<product>-text = sy-index.
IF ( sy-index MOD 2 = 0 ).
APPEND sy-index TO lt_compare.
ENDIF.
ENDDO.
ENDFORM.
FORM solution1.
GET RUN TIME FIELD lv_start.
LOOP AT lt_product ASSIGNING FIELD-SYMBOL(<product1>).
READ TABLE lt_compare WITH KEY table_line = <product1>-id TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
DELETE TABLE lt_product FROM <product1>.
ENDIF.
ENDLOOP.
GET RUN TIME FIELD lv_end.
lv_end = lv_end - lv_start.
WRITE: / 'Solution1: ' , lv_end COLOR COL_NEGATIVE.
ENDFORM.
FORM solution2.
GET RUN TIME FIELD lv_start.
LOOP AT lt_compare ASSIGNING FIELD-SYMBOL(<valid>).
APPEND INITIAL LINE TO lt_range ASSIGNING <range>.
<range>-low = <valid>.
<range>-option = 'EQ'.
<range>-sign = 'I'.
ENDLOOP.
DELETE lt_product1 WHERE id NOT IN lt_range.
GET RUN TIME FIELD lv_end.
lv_end = lv_end - lv_start.
WRITE: / 'Solution2: ' , lv_end COLOR COL_NEGATIVE.
ENDFORM.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关文章
- HashMap循环遍历方式及其性能对比
- ArrayList和LinkedList的几种循环遍历方式及性能对比分析
- 字符串拼接性能问题
- 内存数据库专题之数据库性能瓶颈分析之IO
- 优化服务器的性能方案设计
- DPDK NFV 性能提升
- 12 个免费在线的 Web 网站性能测试工具
- 性能计数器在.NET Core中的新玩法
- Atitit 性能提升总结 流水线模式 FutureTask ForkJoinTask 1.1. 流水线工作方式pipeline1 1.2. FutureTask模式使用异步 流水线 还有多
- 【数据库优化】后端思维之数据库性能优化方案
- 【Android 性能优化】应用启动优化 ( 启动白屏问题 | 应用启动时间测量 | 冷启动 | 热启动 | 应用启动时间计算源码分析 )
- 分享一波价值30K的硬核性能测试面试题。
- 由浅入深!一文5张图教你做性能测试~
- 使用socket方式连接Nginx优化php-fpm性能
- golang 字符串拼接性能比较
- tomcat性能优化