日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

几种内表更新方式的性能比较

發布時間:2025/3/20 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 几种内表更新方式的性能比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ABAP程序中,內表更新主要有以下程序中的三種更新方式。一是通過字段符、二是使用索引、三是循環中直接更新。據我觀察,直接使用第三種方式的人占大多數,使用字段符與使用索引的人應該差不多。這三種方式實際性能如何呢?使用字段符最快,直接更新次之,使用索引最慢。具體測試代碼如下:

*@---------------------------------------------------------------------*
*@ Report? ZTESTXUE23 幾種內表更新的性能比較
*@ T-code
*@---------------------------------------------------------------------*
*@? Created by Xavery Hsueh(薛現軍) on2013-06-29
*@
*@ Lasted Edited date:
*@---------------------------------------------------------------------*

REPORT? zcor016 NO STANDARD PAGE HEADING.

************************************************************************
**? 聲明數據庫表 Declaration ofdatabase?????????????????????????????**
************************************************************************

TABLES:coep,
??????coss.??? "
************************************************************************
**? 定義結構類型 Define the structure'stype?????????????????????????**
************************************************************************

TYPES:BEGIN OF typ_result,
???????vbeln TYPE vbeln,
???????posnr TYPE posnr,
???????matnr TYPE matnr,
???????menge TYPE menge_d,
???????dmbtr TYPE dmbtr,
?????END OF typ_result.

************************************************************************
**? 定義變量與內表 Define the variants and Internaltables???????????**
************************************************************************

DATA:gt_result TYPE TABLE OF typ_result WITH HEADER LINE.

FIELD-SYMBOLS: TYPE typ_result.

DATA:g_index TYPE sy-index.
************************************************************************
**? 宏定義 Define themacro??????????????????????????????????????????**
************************************************************************

DEFINE mcr_range.
? clear &1.
? &1-sign = 'I'.
? &1-option = &2.
? &1-low = &3.
? &1-high = &4.
? append &1.
END-OF-DEFINITION.
************************************************************************
**? 選擇屏幕 Customize theselection-screen??????????????????????????**
************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK xavery WITH FRAME TITLEtext-001.
PARAMETERS: p_box TYPE c.

SELECTION-SCREEN END OF BLOCK xavery.
************************************************************************
**? 執行程序事件 Executing the program'sevents??????????????????????**
************************************************************************

INITIALIZATION.
? PERFORM sub_init_cond.

START-OF-SELECTION.
? PERFORM sub_process_cond.
? PERFORM sub_test_fieldsymbol.
? PERFORM sub_test_index.
? PERFORM sub_test_table.

END-OF-SELECTION.
*@---------------------------------------------------------------------*
*@?????Form? SUB_INIT_COND
*@---------------------------------------------------------------------*
*??????初始化選擇條件
*----------------------------------------------------------------------*

FORM sub_init_cond .

ENDFORM.???????????????????" SUB_INIT_COND
*&---------------------------------------------------------------------*
*&?????Form? SUB_PROCESS_COND
*&---------------------------------------------------------------------*
*??????給測試內表添加數據
*----------------------------------------------------------------------*

FORM sub_process_cond .
? DO 200000 TIMES.
???gt_result-vbeln = sy-index.
???gt_result-posnr = '000010'.
??? APPENDgt_result.
? ENDDO.
ENDFORM.???????????????????" SUB_PROCESS_COND
*&---------------------------------------------------------------------*
*&?????Form? SUB_TEST_FIELDSYMBOL
*&---------------------------------------------------------------------*
*??????測試字段符的性能
*----------------------------------------------------------------------*

FORM sub_test_fieldsymbol .
? CHECK p_box = '1'.
? LOOP AT gt_result ASSIGNING .
??? -menge ='2000.000'.
??? -dmbtr ='1234.56'.
? ENDLOOP.
? WRITE:'測試完成'.
ENDFORM.???????????????????" SUB_TEST_FIELDSYMBOL
*&---------------------------------------------------------------------*
*&?????Form? SUB_TEST_INDEX
*&---------------------------------------------------------------------*
*??????測試索引的性能
*----------------------------------------------------------------------*

FORM sub_test_index .
? CHECK p_box = '2'.
? LOOP AT gt_result.
??? g_index =sy-tabix.
???gt_result-menge = '2000.000'.
???gt_result-dmbtr = '1234.56'.
??? MODIFYgt_result INDEX g_index.
? ENDLOOP.
? WRITE:'測試完成'.
ENDFORM.???????????????????" SUB_TEST_INDEX
*&---------------------------------------------------------------------*
*&?????Form? SUB_TEST_TABLE
*&---------------------------------------------------------------------*
*??????測試一般的更新性能
*----------------------------------------------------------------------*

FORM sub_test_table .
? CHECK p_box = '3'.
? LOOP AT gt_result.
???gt_result-menge = '2000.000'.
???gt_result-dmbtr = '1234.56'.
??? MODIFYgt_result.
? ENDLOOP.
? WRITE:'測試完成'.
ENDFORM.???????????????????" SUB_TEST_TABLE


上篇中的程序代碼的測度結果如何呢?為了保證準確性,本程序在周六大部分不工作的情況下,在DEV開發系統上進行了測試。測試結果如下:

?

第一組

Symbol-fields:

?

index

?

general

?

?

?

第二組

Symbol-fields:

?

index

?

general

?

?

第三組

Symbol-fields:

?

index

?

general


  測試結果在我的意料之中,但可能在一部分人的意料之外。為什么使用索引反而不如不使用索引的情況下快呢?

?

  先說第一種情況使用字段符。大家都知道,字段符相當于C語言的指針,相當于循環的過程中直接更改的內表內容,比通過更改工作區再更改內表的情況簡便了許多。所以性能比后面兩種情況快了許多。

?

  為什么使用索引反而不發直接更新呢?這兒其實有一個理解誤區,就是一部分人認為更改內表的時候也是從內表的第一行開始逐一對比的。而實際情況并不如此,實際情況是循環過程中內表有一個字段sy-tabix,這個字段記錄了循環過程中的記錄索引數,直接更新內表時實際上已經使用了索引。我們人為地在更新內表時去指定索引,相當于畫蛇添足!

?

  因此,在循環內表并更新內表數據時,大家切記:考慮性能的話就使用字段符,否則就直接更新記錄,千萬不要自做聰明地使用索引。使用索引相當于在程序中做了無用功,反而影響了程序的性能。


總結

以上是生活随笔為你收集整理的几种内表更新方式的性能比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美性猛交xxxx乱大交退制版 | 国产精品麻豆一区二区三区 | 精品少妇一区二区三区密爱 | a级片视频网站 | 三级欧美韩日大片在线看 | 国产成人精品一区二区 | 欧美人人爽 | 亚洲精品国产精品乱码在线观看 | 精品人妻一区二区三区日产乱码卜 | 久久久久亚洲精品中文字幕 | 欧美激情性做爰免费视频 | 成人h动漫精品一区二 | 国产色片在线观看 | 久久偷看各类女兵18女厕嘘嘘 | 天美视频在线观看 | 中日韩午夜理伦电影免费 | 99精品久久久久久中文字幕 | 久久国产一区二区三区 | 亚洲精品激情视频 | 中文字幕欧美另类精品亚洲 | 超碰2025 | 中文字幕有码av | 成人第一页 | 日韩在线视频中文字幕 | 97香蕉久久超级碰碰高清版 | 久久久久久无码午夜精品直播 | 超碰在线99| 夜夜春很很躁夜夜躁 | 久久久情 | 91一区二区三区在线观看 | 久久久久亚洲av无码麻豆 | 久久久777| 毛片网站免费观看 | 麻豆国产精品 | 日韩av中文字幕在线播放 | av不卡一区二区三区 | 免费av日韩| 欧美性生活一级 | aaa黄色一级片 | 青娱乐超碰在线 | 成人免费毛片免费 | 欧美亚洲黄色 | 韩国三级免费 | 日本少妇一区二区 | 性猛╳xxx乱大交 | 被灌满精子的波多野结衣 | 小嫩嫩12欧美| 久久国产精品免费看 | 国产精品麻豆一区二区三区 | 亚洲av永久无码精品 | 久久激情综合网 | www国产一区 | 亚洲精品国产精品国自产 | 极品色av影院 | 伊人青青久 | 国产猛男猛女超爽免费视频 | 女大学生的家政保姆初体验 | 一区二区三区成人 | 欧美一级免费看 | 久久久久久久久久国产 | 成人免费视频a | 精品久久久久久久久久久久久久久 | 亚洲免费福利视频 | 自拍偷拍国产视频 | 久久精品国产免费 | 深夜成人在线观看 | 国产av国片偷人妻麻豆 | 亚洲va欧美va天堂v国产综合 | 国产高清色 | 无码国精品一区二区免费蜜桃 | 国产免费视屏 | 人妻久久久一区二区三区 | 古典武侠av| 久久久久亚洲av无码a片 | 精品一区二区三区四区五区 | 欧美一区二区在线视频 | 嫩草影院一区二区三区 | 亚洲国产精品一 | 在线观看的av网址 | 亚洲美女性视频 | 视频一区二区在线播放 | 一区二区视频在线观看 | 一区二区视频免费看 | 性欧美17一18内谢 | 人妻色综合网站 | 爱情岛论坛亚洲品质自拍 | 好爽又高潮了毛片 | 国产精品电影一区二区 | 毛片一区| 素人女裸体 | 成人午夜精品福利 | 亚洲综合婷婷 | 国产一区视频在线 | 中文字幕伊人 | av男人的天堂在线 | 精品久久久中文字幕 | 日韩av在线一区 | 999精品视频 | 国产精品福利一区二区 |