ERP智在優化
北方聯合電力有限責任公司(以下簡稱北方公司)采用了SAP公司的ERP產品(以下簡稱ERP系統),實施了財務和物資兩大模塊并通過接口與生產管理系統(BFS++)、資金支付系統、物資主數據管理系統等集成,實現
北方聯合電力有限責任公司(以下簡稱北方公司)采用了SAP公司的ERP產品(以下簡稱ERP系統),實施了財務和物資兩大模塊并通過接口與生產管理系統(BFS++)、資金支付系統、物資主數據管理系統等集成,實現了北方聯合電力公司生產、物資、財務的一體化管理。
隨著ERP系統的持續運行,數據量越來越大,對基于ABAP/4平臺開發的程序運行速度產生很大的影響,甚至某些程序運行執行時會因超時而退出(ERP系統前臺執行一個命令時間最長為600ms,超出這個時間命令還沒有執行完的程序將超時而退出),影響業務應用效果,因此對程序進行合理優化顯得尤為重要。
所謂ABAP/4程序優化,就是在程序改進時,通過選擇最優數據結構、最優執行語句,設計最優數據庫讀取、最優執行流程,達到程序執行速度最快、占用系統資源最少的目的。
如何分析ABAP/4開發的程序性能
在ERP系統中可以通過使用事務代碼SE30對ABAP/4程序執行時間進行分析,找出程序執行慢的部分。ABAP、Database、System三個階段的執行時間對效能的優先級為Database→System→ABAP,要依序排除哪部分影響性能(如圖1所示)。點擊提示技巧,可以查看一些SAP所提供的效率比較。輸入事務代碼、程序名稱、功能模塊名稱,點擊Execute,執行程序,執行完程序后,點擊Analyze,可以查看程序的執行效率(如圖2所示)。通過執行結果可以清晰看到該程序在系統中運行時ABAP、Database、System三個方面需要花費的時間,點擊左上角 按鈕,可以進一步查看每條語句的執行效率(如圖3所示)。針對語句進行分析,即可對語句或方法進行優化。
影響ABAP/4程序性能的因素
通過對程序運行時間進行性能分析,可以明顯看到,在ERP系統上線運行初期,由于業務和數據量都比較少,程序運行速度比較快,很難發現一些程序的性能瓶頸。隨著業務流程的變化和數據量的不斷增加,程序執行效率變得越來越低。
ERP系統運行1~2年后,數據庫中數據增加,數據庫表中記錄的條數越來越多,導致從數據庫中讀取數據時間增加,同時也會使數據庫產生大量的冗余數據,從而降低了報表執行效率。
程序執行時檢索條件設置不合理,在默認條件中不做限定將有大量數據被讀取,這些數據的加工整理并輸出將會很耗時,當數據庫表中數據條目越多耗時越明顯,甚至程序無法運行出正確的結果。
在編寫數據庫查詢SQL語句時,并沒有進行必要的優化,對海量數據而言,經過優化的SQL語句可能比未優化的SQL語句查詢效率要高很多倍,特別對多表之間的聯合查詢尤其如此。另外,SQL語句中使用關鍵字IN作為查詢條件語句的效率都相對較低。
ERP系統是一個復雜的信息系統,從數據庫表中取數的方法可能不止一種,不同的取數方法對程序的運行效率有很大影響。如對于很多報表所需要的期初數據,如果系統中有存放這批數據的表,那么從中直接讀取則比通過大量數據記錄推算快得多。
在ABAP/4程序的代碼設計中,其算法的優劣也是決定報表執行時間的關鍵因素之一。程序中選擇、循環和嵌套等語句的正確使用,數據的轉換和計算邏輯,程序的同步異步機制及對數據加鎖解鎖方式等都對報表執行效率有很大影響。
優化ABAP/4程序性能的基本原則
首先要減少對數據庫的訪問。頻繁訪問數據庫,對程序性能的影響顯而易見,因為這增加了數據庫的開銷和網絡的往返次數,所以在一個程序中,訪問數據庫的次數越少越好。有時寧愿一次多返回一些數據,也不要增加訪問次數。
其次要減少網絡往返的數據量。如果傳輸的數據量很大,那么網絡延遲的時間就會很明顯。
最后要減少程序的循環次數。循環會增加CPU的負載。雖然每次循環執行的時間比較短,但是隨著循環次數的增加,累計的處理時間就很長。
優化程序性能的方法
優化數據庫系統。隨著業務數據的不斷增加,數據量將逐漸增大。同時數據庫也會產生很多碎片,導致系統性能減弱,浪費大量表空間。而且數據表記錄經過多次刪除、添加會使得日志文件增大,諸如此類原因都會直接影響數據庫的運行效率。因此數據庫管理員(DBA)必須定期檢查系統的狀態,如CPU、內存、交換、磁盤的利用率,同時進行數據庫整理,如刪除不必要的文件、整理磁盤、清理日志文件。在必要時提供更多應用服務器負載分流,使數據庫運行在一個高效穩定的狀態。
優化ABAP/4程序。優化方法和渠道很多,例如通過內表(Internal Table)處理來減少對數據庫的訪問,通過緩沖池模式減少對數據庫的訪問,減少循環嵌套的層數,合理使用READ TABLE等。
優化運行方式。對于非實時數據查詢報表,可以考慮放到后臺運行。非實時數據查詢,可以通過自定義數據表存儲運算結果,讓用戶直接從自定義表抽取報表數據,大大提升查詢響應速度。
優化程序檢索界面。注意避免完全無輸入限制的界面,這樣的查詢方式可能會導致全表掃描,帶來運行效能問題。合理設置檢索方式,在滿足業務需求的前提下盡可能輸入特定范圍的檢索,限制業務查詢的范圍,不僅可以減少程序運行時間,還為整個ERP系統節約了大量的系統資源。
大多數ABAP/4程序是可以進行性能優化的。目前一些優化方法已經在北方公司ERP系統中應用,取得了明顯的效果。經過性能優化的ABAP/4程序提高了終端用戶業務操作效率,對ERP系統整體高效可靠運行有著非常重要的作用。
責任編輯:何健
免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報告 | 基于分類監管與當量協同的碳市場框架設計方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉型與經濟發展并進
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
2020年二季度福建省統調燃煤電廠節能減排信息披露
2020-07-21火電環保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規范法律問題研究(上)
2019-10-31能源替代規范法律 -
區域鏈結構對于數據中心有什么影響?這個影響是好是壞呢!