|  | 
| 最好看标准的优化例子,很多方面都可以考虑以,以下只是个人在代码时的习惯,其它方面参看标准例子考虑: 1.LOOP里最好不要用SELECT,把需要的SELECT放在LOOP外面来减少与数据连接的次数,连接数据库是需要时间的;
 2.LOOP里最好也不要再嵌套其它的LOOP;
 3.在LOOP里用READ TABLE时最好带上BINARY SEARCH;
 4.如LOOP中数据太多,BINARY SEARCH还觉得不够优化的话,考虑使用在LOOP 中再使用DO(例子最后),这个一般只有实在需要性能优化时才用,主要是太麻烦;
 5.活用DELETE ,MOVE等,这些只能自己据实业功能需求来定了;
 
 如下只是系统标准例子中的一个,后面一个代码比前一个代码更快
 复制代码* Entries: 1000 (ITAB1), 300 (ITAB2)
* Line width: 100
* Both tables sorted by unique key K ascending
LOOP AT ITAB1 INTO WA1.
  READ TABLE ITAB2 INTO WA2
             WITH KEY K = WA1-K BINARY SEARCH.
  IF SY-SUBRC = 0.
    " ...
  ENDIF.
ENDLOOP.
复制代码DATA: I TYPE I.
I = 1.
LOOP AT ITAB1 INTO WA1.
  do.
    READ TABLE ITAB2 INTO WA2 INDEX I.
    IF SY-SUBRC <> 0. EXIT. ENDIF.
    IF WA2-K < WA1-K.
      ADD 1 TO I.
    ELSEIF WA2-K = WA1-K.
      " ...
      ADD 1 TO I.
      EXIT.
    ELSE.
      EXIT.
    endif.
  enddo.
  if sy-subrc <> 0. exit. endif.
ENDLOOP.
 | 
 |