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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

發布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FOR ALL ENTRIES IN内表排序、排重对性能的影响 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大家都知道for all entries in 關聯內表時,要先判斷內表不為空 否則會掃描全表,非常消耗服務器內存資源,那么內表關鍵字段的排序和排重對查詢效率有沒有影響呢?下面看一個例子
程序代碼:
  • 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 *
  • UP TO 100 ROWS
  • FROM mara
  • INTO TABLE it_temp_mara.
  • IF sy-subrc = 0.
  • ??IF NOT it_temp_mara[] IS INITIAL.
  • * 具有重復數據的內表
  • ? ? DO 1000 TIMES.
  • ? ?? ?APPEND LINES OF it_temp_mara TO it_mara.
  • ? ? ENDDO.
  • ? ? IF NOT it_mara[] IS INITIAL.
  • * Select MAKT
  • ? ?? ?WRITE:/'內表中數據未經排序排重'.
  • ? ?? ?PERFORM select_makt.
  • * 排過序的內表
  • ? ?? ?WRITE:/'內表中數據已排序未排重'.
  • ? ?? ?SORT it_mara BY matnr.
  • ? ?? ?PERFORM select_makt.
  • * 刪除了重復數據的內表
  • ? ?? ?WRITE:/'內表中數據已排序并排重'.
  • ? ?? ?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
  • 復制代碼


    由上邊的執行時間分析,可以得出以下結論:


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


    1、使用FOR ALL ENTRIES IN時內表中不要有重復的數據
    2、對內表進行排序
    特別注意第二點,容易被忽略
    注意:這里的時間給錯了,是us,不是ms毫秒

    總結

    以上是生活随笔為你收集整理的FOR ALL ENTRIES IN内表排序、排重对性能的影响的全部內容,希望文章能夠幫你解決所遇到的問題。

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