如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2012年1月31日

ABAP效能技巧筆記第一部份 – ABAP SQL

作者: Fred Wang (FW知識瑣記) 原作日期: 2001/7/4

1. Select with Where 比 Select + Check快


若可能的話,使用index可使network load明顯減少,例如上例中index有CARRID+CONNID或CARRID則較佳。

2. Select用index比不用index快

常用的Select指令儘量使用index, Where 子句中的順序應該與index key fields的順序相同, 速度會相差數十至上百倍


3.只抓一筆資料時用Select single較快

Select single只需與database system連一次, 而Select-endselect則需兩次

4.複製資料至另一table時用Select into table較快

若internal table與database table結構相同則用Select..into table…速度較快(比select...endselect快)

5. 用標準的aggregate func.較快

MAX, MIN, COUNT, SUM用標準的SQL寫法比Select-endselect的處理快九倍

6. Select into table + loop at 比Select..endselect快

在一層的Select-endselect的處理, 先將資料存至internal table再用loop-endloop處理速度與在Select-endselect中處理差異不大, 但在多層Select-endselect時, 先將資料存至internal table再用loop-endloop處理速度會快很多

7. 處理join, 使用view比nested Select快

8. 只需特定欄位時用Select 比Select * 快

當Tables欄位越多速度差異越大

9. 經常讀取或唯讀的table用SAP buffering較快

一般使用SAP buffering方式,不要寫BYPASSING BUFFER

10. 用array operation比逐筆operation快

用LOOP-ENDLOOP中的Insert需要許多的database communications

11. 用Column update比逐筆update快

沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)