技术开发 频道

ABAP性能实例七例

    6.Sorted and Hashed Tables

    6.1.Single Read: Sorted vs. hashed tables

    数据在SORTED TABLE类型的内表中按照Binary Search方式组织,检索数据的时间维度为(O (log n))。

    数据在HASDED TABLE类型内表中按照hash-algorithm组织,检索数据的时间维度为(O (1))。

    HASHED TABLE为单条记录的存取进行了优化,它没有索引(index),而SORTED TABLE优化为loop操作的部分顺序数据的存取。

    DO 250 TIMES.

      N = 4 * SY-INDEX.

      READ TABLE HTAB INTO WA WITH TABLE KEY K = N.

      IF SY-SUBRC = 0.

        " ...

      ENDIF.

    ENDDO.
    

    DO 250 TIMES.

      N = 4 * SY-INDEX.

      READ TABLE STAB INTO WA WITH KEY K = N.

      IF SY-SUBRC = 0.

        " ...

      ENDIF.

    ENDDO.

    注:根据实测,Hashed Table的Read Table操作比Sorted Table + Binary Search大约快1倍。

    6.2.Part. seq. access: Hashed vs. sorted

    Hashed tables优化为单条记录的存取,数据在内表中没有特定的顺序,内表没有索引(sy-tabix),而且它必须是UNIQUE KEY。

    SORTED TABLE内表中数据按照Key字段升序排序。

    LOOP AT STAB INTO WA WHERE K = SUBKEY.

      " ...

    ENDLOOP.
   

    LOOP AT HTAB INTO WA WHERE K = SUBKEY.

      " ...

    ENDLOOP.

0
相关文章