ABAP程式碼執行時間最佳化的幾點建議
ABAP/4的程式會需要花費大量的時間執行,而且會使其它程式被迫暫停以等待當前程式執行結束。
這裡提供一些建議以提高你的程式執行速度和系統荷載。[@more@]1.最主要的是儘量減少I/O操作,然後是記憶體佔用,在再就是CPU的負載。類似對硬碟的讀寫的I/O 操作是最耗費時間的。如果對記憶體的操作不加以控制,可能有些時候不得不對硬碟的交換空間操作,這樣就增加了對磁碟的I/O讀寫操作。CPU的負載可以透過最佳化程式來改善,在程式中儘量使用諸如SUM(SQL語句)或者COLLECT(ABAP語句)。
2.Field-groups對於多層次的排序和顯示是非常有用的。它是將資料寫入系統的頁面檔案,而不是記憶體(內表是使用記憶體的)。基於這個原因,field-groups比較適合於處理大量資料的列表(一般超過50000條記錄)。如果涉及大量的資料處理,應該首先和系統管理員協商來決定這個程式最多能使用多少記憶體,以計算這個程式需要使用多少資源。然後你就可以決定是把資料寫入記憶體還是交換空間。
3.儘可能多地使用表的鍵值作為WHERE分句的條件選項。儘可能讓程式只讀取一定範圍內的記錄(比如說,你只准備操作一個月之內的業務資料,那麼對於這一個月的業務就應該有一定的範圍取值,如1000~2000。)
4.儘量把更多選擇項放在使用者選擇介面上,以避免程式一次選出大量的資料。
5.用OCCURS NUM_RECS宣告內表,NUM_RECS引數是你估計(或希望)使用到的資料條數。如果使用到的記錄條數超出NUM_RECS引數的限制,資料將被存放在硬碟上的交換空間(不是記憶體)。
6.儘量使用SELECT A B C INTO TABLE ITAB這樣的語句。這個操作會將所有符合條件的資料一次性地讀進內表,這比在SELECT A B C INTO ITAB... ENDSELECT的迴圈中新增資料到內表要快。請注意,這裡宣告的內表還應該符合第6條的條件。
7.如果讀出的記錄條數在持續增長,你應該把這些資料分割成幾個固定大小的資料塊。比如說,你想調出一年的資料,就可以按照月份把一年的資料分成12個月調出。這樣做能減少I/O的操作。
8.儘可能使用SELECT SINGLE語句。
9.許多表包括TOTAL欄位(比如GLT0表,包含了各科目按財務期間存放的改期借方和貸方的發生額)。使用這些表可以省去在程式中計算和值的過程。
10.多用SELECT SINGLE 方式
11.儘量一次把資料讀出在內表裡面處理,畢竟在內表裡面處理比多次讀資料庫要快得多
12.不要一次JOIN多個表
13.儘量用KEY值作為WHERE 和 JOIN的條件,沒有的話建索引(當然必要時才建)
14.有部分執行不是很頻繁而資料量大的報表可以放在後臺執行
15.多參照SE30裡面的示例
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9437124/viewspace-989347/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP ABAP轉型,我的幾點建議
- 程式設計幾點建議程式設計
- 跳槽的幾點建議
- 如何測量程式碼執行時間
- SAP MM 對於MRKO事務程式碼的幾點優化建議優化
- 如何使用Docker構建執行時間較長的指令碼Docker指令碼
- 自學 JAVA 的幾點建議Java
- JavaScript 計算程式碼執行花費時間JavaScript
- [譯] 程式碼評審的 8 點建議
- PAT-B 1026 程式執行時間【時間】
- UITableView效能優化的幾點建議UIView優化
- 獲取時間戳,幾個時間點的時間戳時間戳
- sleep 時間段不佔指令碼執行時間指令碼
- Linux 檢視程式啟動時間、執行時間Linux
- Stopwatch 計算程式執行時間
- 1026. 程式執行時間(15)
- 人工智慧推行TRIZ的幾點建議人工智慧
- 2024遊戲行業新人入行分析及幾點建議遊戲行業
- MySql資料庫最佳化的幾條核心建議MySql資料庫
- **java設定一段程式碼執行超時時間(轉)**Java
- 獲取C#中方法的執行時間及其程式碼注入C#
- PHP 獲取程式碼執行時間和消耗的記憶體PHP記憶體
- BGP - 不同 AS 間執行的協議協議
- python程式計算執行時間差Python
- 十一後跳槽找工作的幾點良心建議
- 給部落格園的幾點現實建議
- 關於加強MYSQL安全的幾點建議MySql
- [需求建議]外掛建議:建議出一個時間軸外掛
- 助您寫出優雅的Java程式碼七點建議Java
- Vue中拆分檢視層程式碼的5點建議Vue
- Java程式碼建議Java
- 利用網校原始碼進行線上教育直播系統開發之前必看的幾點建議原始碼
- 生成 Linux 執行時間報告的 Bash 指令碼Linux指令碼
- apache-淺析apache優化的幾點建議Apache優化
- 編寫Spark程式的幾個最佳化點Spark
- 判斷ABAP程式碼是否處於update模式下執行的工具類模式
- 關於《給部落格園的幾點現實建議》
- PMP®|對如何做好專案管理的幾點建議專案管理
- 關於浙江機器人品質管理的幾點建議機器人