技术开发 频道

ABAP性能实例七例

    6.Index and Buffer Support

    6.1.Select with index support

    Select语句在Where条件中尽量使用索引字段

    6.2.Select with buffer support

    对于最常用的只读的数据读取,使用SAP Buffering,不要使用BYPASSING BUFFER,例如:

    SELECT SINGLE * FROM T100 INTO T100_WA

      BYPASSING BUFFER

      WHERE     SPRSL = 'D'

            AND ARBGB = '00'

            AND MSGNR = '999'.

    7.Array Operations (internal tables)

    7.1.Select ... Into Table t

    使用Into Table版本的Select 语句要比使用 Append 的方式速度更快,例如:

    SELECT * FROM T006 INTO TABLE X006.
    

    DATA T006_WA TYPE T006.

    CLEAR X006.

    SELECT * FROM T006 INTO T006_WA.

      APPEND T006_WA TO X006.

    ENDSELECT.

    7.2.Array Insert VS Single-row Insert

    向数据库中插入数据时,使用内表代替单行操作,减少应用服务与数据库的交互次数,能够有效地减少系统负荷。

    INSERT CUSTOMERS FROM TABLE TAB.
   

    LOOP AT TAB INTO TAB_WA.

      INSERT INTO CUSTOMERS VALUES TAB_WA.

    ENDLOOP.

    7.3.Select-Endselect vs. Array-Select

    对于只需要使用一次的数据,使用Select-Endselect-loop来代替Select Into
    Table。内表需要更多的内存空间。例如:

    SELECT * FROM T006 INTO X006_WA.

    ENDSELECT.
   

    SELECT * FROM T006

      INTO TABLE X006.

    LOOP AT X006 INTO X006_WA.

    ENDLOOP.

    注:个人认为还是取出数据到内表的方式要好,牺牲存储空间,换取时间上的性能。

0
相关文章