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
當Tables欄位越多速度差異越大
9. 經常讀取或唯讀的table用SAP buffering較快
一般使用SAP buffering方式,不要寫BYPASSING BUFFER
10. 用array operation比逐筆operation快
用LOOP-ENDLOOP中的Insert需要許多的database communications
11. 用Column update比逐筆update快
沒有留言:
張貼留言
歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)