abap執行時間

2021-04-25 17:15:13 字數 1224 閱讀 8895

abap/4的程式會需要花費大量的時間執行,而且會使其它程序被迫暫停以等待當前程式執行結束。這裡提供一些建議以提高你的程式執行速度和系統荷載。

1.最主要的是儘量減少i/o操作,然後是記憶體占用,在再就是cpu的負載。類似對硬碟的讀寫的i/o操作是最耗費時間的。如果對記憶體的操作不加以控制,可能有些時候不得不對硬碟的交換空間操作,這樣就增加了對磁碟的i/o讀寫操作。

cpu的負載可以通過優化程式來改善,在程式中盡量使用諸如sum(sql語句)或者collect(abap語句)。

2.field-groups對於多層次的排序和顯示是非常有用的。它是將資料寫入系統的頁面檔案,而不是記憶體(內錶是使用記憶體的)。基於這個 原因,field-groups比較適合於處理大量資料的列表(一般超過50000條記錄)。如果涉及大量的資料處理,應該首先和系統管理員協商來決定這 個程式最多能使用多少記憶體,以計算這個程式需要使用多少資源。然後你就可以決定是把資料寫入記憶體還是交換空間。

3.盡可能多地使用表的鍵值作為where分句的條件選項。盡可能讓程式只讀取一定範圍內的記錄(比如說,你只準備操作乙個月之內的業務資料,那麼對於這乙個月的業務就應該有一定的範圍取值,如1000~2000。)

4.盡量使用這樣的選擇語句select a b c into table itab。

5.盡量把更多選擇項放在使用者選擇介面上,以避免程式一次選出大量的資料。

6.用occurs num_recs宣告內錶,num_recs引數是你估計(或希望)使用到的資料條數。如果使用到的記錄條數超出num_recs引數的限制,資料將被存放在硬碟上的交換空間(不是記憶體)。

7.盡量使用select a b c into table itab這樣的語句。這個操作會將所有符合條件的資料一次性地讀進內錶,這比在select a b c into itab... endselect的迴圈中新增資料到內錶要快。請注意,這裡宣告的內錶還應該符合第6條的條件。

8.如果讀出的記錄條數在持續增長,你應該把這些資料分割成幾個固定大小的資料塊。比如說,你想調出一年的資料,就可以按照月份把一年的資料分成12個月調出。這樣做能減少i/o的操作。

9.學會用效率比較高的collect語句。

10.盡可能使用select single語句。

11.許多表包括total欄位(比如glt0表,包含了各科目按財務期間存放的改期借方和貸方的發生額)。使用這些表可以省去在程式中計算和值的過程。

abap原程式中直接使用structure 和function。se30,bc490,bc420

程式執行時間

要獲得乙個c語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock 函式,可以捕捉從程式開始執行到clock 被呼叫時所 耗費的時間。這個時間單位是clock tick,即 時鐘打點 同時還有乙個常數clk tck,給出了機器時鐘每秒所走的時鐘打點數。於是為了獲 得乙個函式f...

程式執行時間

時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 要獲得乙個c語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock 函式,可以捕捉從程式開始執行到clock 被呼叫時所 耗費的時間。這個時間單位是cloc...

程式執行時間

要獲得乙個c語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock 函式,可以捕捉從程式開始執行到clock 被呼叫時所 耗費的時間。這個時間單位是clock tick,即 時鐘打點 同時還有乙個常數clk tck,給出了機器時鐘每秒所走的時鐘打點數。於是為了獲 得乙個函式f...