日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于自定义程序的效能优化

發布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于自定义程序的效能优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在項目中,總會有各種的ABAP程序的性能太慢,需要優化,

說明:本文檔是參照sap程序優化標準培訓教材BC490。
程序優化宗旨:
1.正確運用索引,盡量避免以全表掃描的方式提取數據,這是程序效能的最主要影響因素。
2.盡量減少數據的傳輸(例如,利用buffer,無用列不要傳,數據的過濾盡量放在數據庫層等)。
3.批處理優于逐筆處理。
4.讓代碼少作無用功,擯棄無用程序代碼。

一、實現方式的優化:
1.檢查系統標準報表,察看有沒有功能相同,相似的報表,以標準報表,或標準報表的增強版代替自定義開發程序。
2.低效率的query程序,如果問題出在無法優化的infoset 則應該考慮abap開發。
3.通過信息結構產生的查詢程序,要特別注意效能,必要的時候考慮abap自定義開發,或query, report painter 等方式實現。
4.通過邏輯數據庫實現的程序,如果效能低,可以考慮abap開發實現。

二、運行方式的優化:
1.對于非實時數據查詢報表,可以考慮放到后臺運行。
2.非實時數據查詢,可以通過自定數據表存儲運算結果,讓用戶直接從自定義表抽取報表數據,大大提升查詢響應速度。
3.定期后臺運行程序,把結果存入文檔直接讓用戶下載等。

三、查詢界面的優化:
1. 注意避免完全無輸入限制的界面,這樣可能會導致全表掃描的查詢方式,帶來效能問題
2.查詢界面的設計要盡量契合程序中SQL的where條件。

四、程序代碼的優化:
1) 正確運用索引:For all frequently used Select statements, try to use an?
index. You always use an index if you specify (a generic part of)?
the index fields concatenated with logical Ands in the Select?
statement's Where clause. Note that complex Where clauses?
are poison for the statement optimizer in any database system。
如果一個大數據量的SQL查詢,WHERE條件沒有利用索引提取數據,必然帶來嚴重的效能問題:可以通過工具ST05等分析查詢效能,或直接通過觀察法分析SQL查詢語句。
A.首先查看是否使用正確的數據表,(例如如果要取得科目期間金額數據,可直接從glt0表中獲得,而不要通過bseg累加計算了)。
B.如果當前表不能提供按索引查詢,可考慮是否可以通過索引表,例如vbrp中沒有按物料的條件查詢,但vbrmp則有按物料的索引,可以通過該表獲得憑證號,再通過憑證號到VBRP中獲得所需信息。
C.看有沒有符合條件的視圖。
D.按查詢條件建立索引。

*自定義索引請注意以下問題:
1.不要修改標準索引。
2.每個表一般索引個數不要超過5個,索引字段一般不要超過4個。
3.盡量不要在主數據表和業務數據表中添加索引。
4.不要在以DD打頭的標中建索引,因為他們是基礎表。
5.字段排列按一下規則: Identifiers:+ Organizational units:+ Status fields:+ Classifiers:+ Date and time:+ Text fields:)。
6.對于非常復雜的where條件要拆成多查詢語句,因為數據庫的查詢優化器無法對復雜條
件查詢實現優化,可能導致非索引查詢。
2) Where條件中盡量不要用“非”的查詢條件(諸如not,<>, not in ,etc),這樣可以縮小
數據搜索范圍。
3)注意BUFFER:For all frequently used, read-only tables, try to use SAP buffering.?
Network load is considerably less。
4) 盡量避免嵌套查詢,多SQL查詢,看可不可以用視圖,表關聯或子查詢替代。
5) 用Select Into Table 代替Select + Append模式語句。
6) 用批處理模式代替逐紀錄處理,例如:
INSERT CUSTOMERS FROM TABLE TAB.
比下面語句要高效的多
LOOP AT TAB INTO TAB_WA.
INSERT INTO CUSTOMERS VALUES TAB_WA.
ENDLOOP.
其他操作原理相同
7) 把運算盡量放到SQL層次實現,避免不必要數據的傳輸,例如
SELECT * FROM SBOOK INTO SBOOK_WA
WHERE CARRID = 'LH' AND CONNID = '0400'.
ENDSELECT.
比下面語句要高效率
SELECT * FROM SBOOK INTO SBOOK_WA.
CHECK: SBOOK_WA-CARRID = 'LH' AND SBOOK_WA-CONNID = '0400'.
ENDSELECT.

還有: DATA: MAX_MSGNR type t100-msgnr.
SELECT MAX( MSGNR ) FROM T100 INTO max_msgnr
WHERE SPRSL = 'D' AND
ARBGB = '00'.比下面語句要高效率得多
DATA: MAX_MSGNR type t100-msgnr.
MAX_MSGNR = '000'.
SELECT * FROM T100 INTO T100_WA
WHERE SPRSL = 'D' AND
ARBGB = '00'.
CHECK: T100_WA-MSGNR > MAX_MSGNR.
MAX_MSGNR = T100_WA-MSGNR.
ENDSELECT.
等等,其他操作原理相同。
8)不要濫用 SELECT *,一般應把所需字段list出來,不要list不必要的字段,減少數據傳輸,減輕網絡負擔,提升性能。

9)大數據量內表處理的優化
a.批處理優于逐紀錄處理,例如APPEND LINES OF ITAB1 TO ITAB2.
優于
LOOP AT ITAB1 INTO WA.
APPEND WA TO ITAB2.
ENDLOOP.
ITAB2[] = ITAB1[].
優于
REFRESH ITAB2.
LOOP AT ITAB1 INTO WA.
APPEND WA TO ITAB2.
ENDLOOP.

b.運用排序和BINARY SEARCH?
If internal tables are assumed to have many (>20) entries, a linear?
search through all entries is very time-consuming.?
Try to keep the table ordered and use binary search?
or used a table of type SORTED TABLE.?
If TAB has n entries, linear search runs in O( n ) time, whereas?
binary search takes only O( log2( n ) ).
例如:
READ TABLE ITAB INTO WA WITH KEY K = 'X' BINARY SEARCH.
遠優于
READ TABLE ITAB INTO WA WITH KEY K = 'X'.

總結

以上是生活随笔為你收集整理的关于自定义程序的效能优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久草中文在线观看 | 久久夜色精品国产欧美乱 | 国产精品99久 | 成人午夜福利视频 | 天天干,天天爽 | 中字av在线 | 99久久久无码国产精品性青椒 | 国产在线观看a | xxxx性视频 | www.久久视频 | 国产一级免费大片 | 18色av| 亚洲 在线 | 亚洲免费视频网站 | 久久国产精品影院 | 天天干天天日 | 在线一区不卡 | 在线日韩欧美 | 另类三区 | 激情偷乱人成视频在线观看 | 天天干天天干天天 | 深夜福利av | 波多野结衣人妻 | 亚洲青色在线 | 欧洲精品一区 | 内裤摩擦1v1h | 欧美熟妇7777一区二区 | 午夜高潮 | 激情无码人妻又粗又大 | 中文字幕乱码一区二区 | 色综合免费视频 | 国产日韩精品一区二区三区在线 | 麻豆精品视频在线观看 | 色婷婷激情av | wwwav视频 | aaaa黄色片 | 无码人妻熟妇av又粗又大 | 真实乱视频国产免费观看 | 久久精品免费电影 | 国产毛片91 | 久久国产视频网站 | 亚洲熟妇av一区二区三区 | 影音先锋成人资源 | 日本欧美三级 | 爱爱的免费视频 | 美女人人操| 黄色免费版 | 操www| 亚洲天堂资源在线 | 三级在线看中文字幕完整版 | 国产一区综合 | 欧美粗大猛烈老熟妇 | 激情综合亚洲 | av涩涩| 小萝莉末成年一区二区 | 日韩亚洲欧美一区二区三区 | 六月丁香婷婷网 | 香蕉污视频在线观看 | 亚洲AV无码一区二区三区蜜桃 | 国产成人精品无码免费看在线 | 久久综合成人网 | 欧美视频 | 性欧美日韩 | 69亚洲| 亚洲91在线| 尤物视频最新网址 | 91视频免费观看网站 | 福利二区三区 | 15p亚洲| 婷婷色一区二区三区 | 日本妇女毛茸茸 | 人人做人人爱人人爽 | 久久久久久久久久久久久久国产 | 国产精品无码电影在线观看 | 欧美精品videos另类日本 | 在线播放无码后入内射少妇 | gav在线| 婷久久 | 色婷婷av一区二区 | 中文不卡av | 中文字幕18页 | 色婷婷在线播放 | 91官网在线 | 欧美日韩精品久久久免费观看 | 美国美女黄色片 | 97潮色| 国产av无码专区亚洲a∨毛片 | 国产一级在线 | 日韩精品成人免费观看视频 | 欧美69久成人做爰视频 | 国产亚洲精久久久久久无码苍井空 | 七七色影院 | av电影在线观看网址 | 国产婷婷在线视频 | 国产精品后入内射日本在线观看 | 超碰97久久| 中文一区二区在线观看 | 成人av不卡 | 99精品久久久久久久婷婷 |