• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺析SAP系統(tǒng)的性能優(yōu)化

      2017-04-05 17:34:08劉皓
      石油化工自動化 2017年3期
      關(guān)鍵詞:進程語句內(nèi)存

      劉皓

      (中國石化銷售有限公司 天津石油分公司,天津 300100)

      淺析SAP系統(tǒng)的性能優(yōu)化

      劉皓

      (中國石化銷售有限公司 天津石油分公司,天津 300100)

      企業(yè)資源計劃軟件SAP系統(tǒng)雖然可大幅提高工作效率,但隨著系統(tǒng)長期運行,數(shù)據(jù)量增加,SAP系統(tǒng)性能將呈下降態(tài)勢。通過優(yōu)化語句的編寫,可減少I/O操作、內(nèi)存占用和CPU的負載應(yīng)用;根據(jù)客戶當前應(yīng)用的服務(wù)器數(shù)量,對SAP系統(tǒng)進程參數(shù)、數(shù)據(jù)庫參數(shù)進行調(diào)整,實現(xiàn)工作進程數(shù)量的優(yōu)化。提出了加強日常監(jiān)控,排除隱患的措施以及改善硬件網(wǎng)絡(luò)環(huán)境等合理化建議。

      企業(yè)資源計劃 優(yōu)化 數(shù)據(jù)庫 參數(shù)

      企業(yè)資源計劃(ERP)宗旨是將企業(yè)的物料、設(shè)備、資金、人力、信息等資源通過信息系統(tǒng)進行科學(xué)合理的組織、管理和控制,以求收益、效率最佳化。企業(yè)管理解決方案(SAP)作為世界領(lǐng)先的ERP軟件在各行業(yè)得到廣泛應(yīng)用,實現(xiàn)了物流、資金流、信息流的“三流合一”,同時隨著多個系統(tǒng)與SAP系統(tǒng)的集成,又大幅提高了數(shù)據(jù)采集速度和準確度,為經(jīng)營決策贏得了時間,提高了效率。但隨著系統(tǒng)的長期運行,數(shù)據(jù)量的不斷增加以及系統(tǒng)設(shè)備運行帶來的老化問題,使該系統(tǒng)性能呈下降態(tài)勢。系統(tǒng)反應(yīng)慢將影響銷售開單、生產(chǎn)運營和報表出具等正常的業(yè)務(wù)開展,如果情況進一步惡化,系統(tǒng)會出現(xiàn)超時、延時嚴重甚至停止服務(wù)的問題。

      增加或者更換高配置設(shè)備往往是解決該系統(tǒng)性能問題行之有效的方法,但是該方法不但成本高,而且造成系統(tǒng)資源的大量浪費。因此,提高系統(tǒng)資源使用率成為了經(jīng)濟高效的系統(tǒng)優(yōu)化方案。

      筆者從事多年SAP系統(tǒng)開發(fā)及系統(tǒng)管理工作,摸索和積累了一些提高系統(tǒng)資源使用率的經(jīng)驗和方法。從實際工作出發(fā),從以下4個方面對系統(tǒng)進行優(yōu)化。

      1 程序和數(shù)據(jù)庫索引優(yōu)化

      1.1 程序優(yōu)化

      在SAP系統(tǒng)上線后的一段時間內(nèi),由于系統(tǒng)數(shù)據(jù)量較小,ABAP程序的運行效率問題容易被忽視。但隨著數(shù)據(jù)量的不斷增大,如果取數(shù)方法不得當,將嚴重影響程序的運行效率。優(yōu)化ABAP程序主要是優(yōu)化數(shù)據(jù)取數(shù)的方法,可以減少I/O操作、內(nèi)存占用和CPU的負載。以下推薦幾種做法:

      1) 可以使用視圖來代替基本表的查詢以提高查詢效率。如果一定要使用基本表查詢,要盡可能多地使用表的索引作為“Where”分句的條件選項,盡可能讓程序只讀取一定范圍內(nèi)的記錄。比如,在條件選擇界面,限定時間、公司代碼、工廠、成本中心等條件,減少被選擇的數(shù)據(jù)量;并且還可以使用二分法查詢,提高查詢內(nèi)表數(shù)據(jù)速度,但注意要在使用之前應(yīng)對內(nèi)表進行排序。

      2) 通過以下示例說明語句優(yōu)化。

      a) 使用“select... for all entries”的語句,不使用“l(fā)oop... select single... endloop”的語句。前一種方式為數(shù)據(jù)—內(nèi)表,后一種方式為數(shù)據(jù)—工作區(qū)—內(nèi)表,很明顯前一種方式減少了一個過程,效率得到提高。

      b) 盡量使用“l(fā)oop... where... endloop.”語句,不使用“l(fā)oop... if... endif. endloop.”語句,可有效減少循環(huán)數(shù)據(jù)的數(shù)量,降低程序運行時間。

      c) 盡量使用“select a b c into table itab”這樣的語句。這個操作會將所有符合條件的數(shù)據(jù)一次性地讀進內(nèi)表,這比在“select a b c into itab... endselect”的循環(huán)中添加數(shù)據(jù)到內(nèi)表要快很多,同時比使用“select *into corresponding fields of table itab”這種字段自動匹配的查詢方法節(jié)省更多的時間和內(nèi)存空間。

      3) 在1條“select”語句中盡量減少多個數(shù)據(jù)表關(guān)聯(lián)取數(shù)。雖然1條“select”語句中多個數(shù)據(jù)表關(guān)聯(lián)取數(shù)看起來簡潔,但是會造成系統(tǒng)索引使用上的混亂,使應(yīng)用效果適得其反;特別是對選擇條件多,但是這些條件數(shù)據(jù)都不完整的情況下,效率低的問題尤為明顯。從實際工作中的效果看,“inner join”的數(shù)據(jù)表關(guān)聯(lián)最好不要超過3個。對于一定要應(yīng)用多表關(guān)聯(lián)的情況,可以將數(shù)據(jù)量不是過于龐大的數(shù)據(jù)表根據(jù)選擇條件放入內(nèi)表中,使用“for all entries”的方式進行關(guān)聯(lián),雖然會消耗一部分系統(tǒng)內(nèi)存,但在一定程度上會提高系統(tǒng)索引的使用率。

      4) 可以使用批量修改方式修改內(nèi)表數(shù)據(jù),盡量不使用逐行修改方式。同時1個內(nèi)表的數(shù)據(jù)要寫入另1個內(nèi)表時,也應(yīng)使用批量增加方式,盡量不使用逐行增加方式。

      5) 可以使用“sort”對數(shù)據(jù)排序而不使用“order by”?!皁rder by”命令是在數(shù)據(jù)庫服務(wù)器上執(zhí)行的,而“sort”語句是在應(yīng)用服務(wù)器上執(zhí)行的。同時可以使用一些聚合函數(shù)、“group by... having”,來進行計算和分組統(tǒng)計,也可以改善查詢的效率。在程序中應(yīng)盡量使用諸如“SUM(SQL語句)”或者“COLLECT(ABAP語句)”,此舉可以有效地降低CPU的負載。

      1.2 數(shù)據(jù)庫的索引優(yōu)化

      一般而言,若服務(wù)器配置較高,存儲速度較快,一般較小的表不必創(chuàng)建索引,另外對一些非業(yè)務(wù)應(yīng)用或查詢很少的業(yè)務(wù)大表也不必創(chuàng)建索引。并不是創(chuàng)建越多的索引系統(tǒng)速度越快,反而創(chuàng)建較多索引會給數(shù)據(jù)庫的性能造成負面的影響,一般建議每個數(shù)據(jù)表的索引數(shù)量不超過7個。創(chuàng)建索引時應(yīng)該注意以下幾個方面的內(nèi)容:

      1) 索引的字段應(yīng)在程序的SQL語句的“Where”子句中出現(xiàn),且盡可能多地出現(xiàn)在不同程序中,以便該索引能被多個程序復(fù)用。

      2) 字段要有較多的區(qū)別值,即該字段在表中存在多種不同的值,不宜超過10種。而且字段要有較好的數(shù)據(jù)分布,即表記錄中該字段在不同值的分布比較均勻,不應(yīng)在某值下密集分布,分布比例最好不超過30%。

      3) 將具備較好的區(qū)別值和數(shù)據(jù)分布情況的字段放在組合索引的前列,做到索引字段順序按區(qū)別值和數(shù)據(jù)分布質(zhì)量的優(yōu)劣順序從前向后排列。

      4) 通過控制索引字段數(shù)量以控制索引的二元高度。

      需要注意的是,創(chuàng)建索引時會導(dǎo)致系統(tǒng)鎖表,即不能在創(chuàng)建索引的同時進行和表相關(guān)的業(yè)務(wù)操作,因而應(yīng)該選擇業(yè)務(wù)不繁忙的時候進行索引創(chuàng)建,并對大的索引創(chuàng)建應(yīng)充分預(yù)估所需時間;同時新建的索引如果沒有計算優(yōu)化器統(tǒng)計信息,系統(tǒng)將不會使用該索引。因此,應(yīng)在創(chuàng)建索引時使用“Compute statistics”選項進行索引的優(yōu)化器統(tǒng)計信息計算,或在索引創(chuàng)建完成后另外計算索引的優(yōu)化器統(tǒng)計信息。

      2 SAP系統(tǒng)參數(shù)及設(shè)置優(yōu)化

      2.1 SAP系統(tǒng)內(nèi)存參數(shù)調(diào)整

      關(guān)注SAP系統(tǒng)的內(nèi)存使用情況,對于Nametab(NTAB),Program,Export/Import,Tables等內(nèi)存緩沖區(qū)的Swaps值,如果存在每天增長量超過1萬次的情況應(yīng)該關(guān)注,Swaps值特別異常時可根據(jù)情況修改相關(guān)參數(shù)后重啟SAP以改善Swaps值。建議每次調(diào)整值為原值的10%,逐步跟進調(diào)整。

      SAP擴展內(nèi)存是SAP內(nèi)存管理系統(tǒng)的核心,em/initial_size_MB和em/max_size_MB決定了擴展內(nèi)存的初始值大小和最大值;em/blocksize_KB決定了擴展內(nèi)存的單位,開辟的擴展內(nèi)存最大是8 192個該單位。64位操作系統(tǒng)建議1個單位為4 096 KB,表示最大能使用的擴展內(nèi)存為32 GB,超過配額將使用Swaps開銷;em/address_space_MB為每個用戶進程的上下文所能使用的最大擴展內(nèi)存,默認的缺省值為4 GB;em/global_area_MB除AIX和Windows系統(tǒng)外應(yīng)該為255;ztta/rol_extension表示每個用戶使用的擴展內(nèi)存,建議最大配額為2 GB。

      這里特別指出,由于用戶使用SAP內(nèi)存時,首先由進程開辟Roll area,通過共享內(nèi)存的Roll Buffer進行Roll in和Roll out,當Roll Buffer超出配額時,將會請求操作系統(tǒng)的Roll file來開銷;故Roll memory初始分配不能分配過大,建議分配僅1Byte,如果配額不夠,由ztta/roll_area決定Roll area的大小。

      2.2 SAP系統(tǒng)進程參數(shù)調(diào)整

      SAP系統(tǒng)進程的類型有: 對話進程、后臺進程、打印進程、更新進程、隊列進程。

      1) 可根據(jù)客戶當前的應(yīng)用服務(wù)器的數(shù)量,進行工作進程數(shù)量的調(diào)優(yōu)。

      2) 在滿足現(xiàn)有業(yè)務(wù)需求的條件下,在服務(wù)器硬件資源沒有更新、升級的情況下,工作進程的總數(shù)要控制在最小值,此舉將節(jié)約現(xiàn)有的硬件資源。

      3) 根據(jù)業(yè)務(wù)運行的具體情況動態(tài)分配進程數(shù)量。例如在白天由于線上操作較多,可將對話進程數(shù)量加大;而在晚間后臺作業(yè)增多,可以減少對話進程數(shù)量增加后臺作業(yè)數(shù)量。

      2.3 加強日常監(jiān)控排除隱患

      1) 每天做好對話、打印、更新進程及后臺作業(yè)的監(jiān)控工作,對處于錯誤狀態(tài)的對話、打印進程要及時重啟進程,對出錯的更新條目要與業(yè)務(wù)人員聯(lián)系,不能完善處理的要即時刪除,并及時處理“更新未激活”故障。

      2) 每天做好ABAP DUMP和系統(tǒng)錯誤日志的檢查工作,系統(tǒng)出錯時會產(chǎn)生短轉(zhuǎn)儲,可通過系統(tǒng)的提示進入SAP的網(wǎng)站查看相應(yīng)的Notes。在DUMP中可以精確定位錯誤,有助于解決問題。另外要對系統(tǒng)日志進行分析,對影響系統(tǒng)正常使用和功能實現(xiàn)的問題應(yīng)找出原因并及時處理。

      3) 每周進行SAP層面的系統(tǒng)性能監(jiān)控,每月記錄系統(tǒng)性能統(tǒng)計信息,并且利用Solution manager管理平臺每周發(fā)布的Early watch報告對系統(tǒng)運行狀況進行針對性地分析和調(diào)整。

      4) 關(guān)注系統(tǒng)負載均衡,如某臺應(yīng)用服務(wù)器負載遠大于另1臺,原因可能是用戶直接指定了高負載服務(wù)器登錄致使資源緊張。使用組登錄方式,同時使用事務(wù)代碼SMLG設(shè)置應(yīng)用服務(wù)器的可登錄數(shù)量,使系統(tǒng)資源均得到充分應(yīng)用。另外,對于分屬不同應(yīng)用模塊的用戶,可以設(shè)置某個應(yīng)用服務(wù)器只能登錄某個特定模塊的用戶,而其他模塊的用戶不允許登錄到該服務(wù)器上的模式。因為不同的SAP應(yīng)用模塊對系統(tǒng)資源有不同的需求,這樣做可根據(jù)需要動態(tài)地調(diào)節(jié)系統(tǒng)資源。

      3 數(shù)據(jù)庫優(yōu)化

      Oracle數(shù)據(jù)庫具有處理速度快、安全級別高、數(shù)據(jù)存儲量大等特點,在大部分企業(yè)中作為SAP系統(tǒng)的底層數(shù)據(jù)庫使用。以下將主要針對主流的Oracle數(shù)據(jù)庫的優(yōu)化進行分析。

      3.1 數(shù)據(jù)庫參數(shù)調(diào)整

      內(nèi)存參數(shù)的設(shè)置,直接關(guān)系到數(shù)據(jù)庫(DB)的性能;其他參數(shù)也會影響DB的正常運行。

      內(nèi)存參數(shù)主要調(diào)整共享池、緩沖區(qū)高速緩沖區(qū)、系統(tǒng)全局區(qū)(SGA)和程序全局區(qū)(PGA)。緩沖區(qū)高速緩存DB_CACHE_SIZE可設(shè)置為可用內(nèi)存的40%~50%;db_block_buffers可設(shè)置為可用內(nèi)存的40%~50%;共享池SHARED_POOL_SIZE可設(shè)置為可用內(nèi)存的10%;PGA的PGA_AGGREGATE_TARGET可設(shè)置為可用內(nèi)存的15%。

      上述參數(shù)設(shè)置應(yīng)根據(jù)系統(tǒng)運行的具體情況進行相應(yīng)的調(diào)整。如數(shù)據(jù)緩沖區(qū)命中率低,可根據(jù)系統(tǒng)資源情況增加數(shù)據(jù)緩沖。如筆者曾遇到系統(tǒng)原數(shù)據(jù)庫命中率89%,db_block_buffers參數(shù)為5×104,經(jīng)過嘗試將該參數(shù)調(diào)整為8×104,數(shù)據(jù)庫命中率上升為95%,系統(tǒng)效率得到提升。

      另外還應(yīng)注意OPEN_CURSORS,OPTIMIZER_MODE等幾個參數(shù)的設(shè)置。

      3.2 調(diào)整Redo Log文件大小

      發(fā)現(xiàn)數(shù)據(jù)日志切換頻率過高,則應(yīng)調(diào)整在線Redo log文件大小,減少文件切換次數(shù);增加回滾段組數(shù),降低出現(xiàn)“快照過舊”現(xiàn)象的概率。Oracle推薦每20 min生成1個Redo log文件。筆者曾遇到系統(tǒng)出現(xiàn)ORA-1555的報錯日志,經(jīng)過分析Redo log文件大小為20 MB,每小時生成23個文件,反應(yīng)到應(yīng)用上就是系統(tǒng)反應(yīng)慢,運行效率低。筆者調(diào)整了Redo log文件大小,有效地降低了系統(tǒng)響應(yīng)時間。

      3.3 表和索引存儲質(zhì)量的維護

      1) 每周應(yīng)至少執(zhí)行1次SAP的自動數(shù)據(jù)庫表的統(tǒng)計信息更新,每3個月全部自動分析1次。

      2) 確保表空間利用率在90%以下,對超過300 GB的表空間要確保表空間有超過20 GB的空閑空間。

      3) 原則上數(shù)據(jù)庫每個表都要有索引;如發(fā)現(xiàn)丟失的和質(zhì)量低于65%的索引應(yīng)及時重建;對1 a以上未使用的索引應(yīng)做刪除處理;對碎片嚴重的索引要在線重建,保障訪問量排行前20位數(shù)據(jù)表的索引存儲質(zhì)量在65%以上。這些表的統(tǒng)計信息至少半年要更新1次。

      4) 對部分訪問相當頻繁,數(shù)據(jù)插入量很大的表,如允許刪除,應(yīng)及時重組該表以改善性能。

      5) 調(diào)整DBA計劃日歷作業(yè)。建議每天執(zhí)行對數(shù)據(jù)庫的統(tǒng)計信息檢查作業(yè)、更新作業(yè)和檢查數(shù)據(jù)庫作業(yè),每周執(zhí)行檢查擴展空間作業(yè)和清除日志作業(yè)。

      3.4 優(yōu)化性能差的程序SQL語句

      通過對等待事件的監(jiān)控,如執(zhí)行事務(wù)代碼ST03或ST04,同時也可通過Early watch報告,可以很輕松地找到性能差的SQL語句和耗時的SQL語句。針對這些SQL語句進行優(yōu)化,并創(chuàng)建有效率的索引,具體方法見對程序和數(shù)據(jù)庫索引優(yōu)化部分的相關(guān)介紹。

      3.5 數(shù)據(jù)庫硬盤的規(guī)劃設(shè)計

      對數(shù)據(jù)庫硬盤的規(guī)劃設(shè)計進行優(yōu)化,使得工作負載在硬盤上盡可能地平均分配,以避免當從硬盤中寫入和讀取的時候產(chǎn)生等待的情況。

      3.6 做好鎖和隊列的監(jiān)控

      檢查是否有很長時間的鎖定沒有釋放,如有這種鎖條目應(yīng)聯(lián)系相應(yīng)用戶了解情況,但在做處理時需要謹慎,只有確認為非正常退出造成的,才能進行手工刪除。

      4 網(wǎng)絡(luò)狀況改善

      1) 客戶端/服務(wù)器架構(gòu)中不同層之間的網(wǎng)絡(luò)傳輸速度和數(shù)據(jù)吞吐量非常重要,它們會影響整個系統(tǒng)的性能表現(xiàn),如果網(wǎng)絡(luò)存在瓶頸,將導(dǎo)致客戶操作緩慢。

      2) 由于SAP架構(gòu)要求絕大多數(shù)的數(shù)據(jù)交換都在應(yīng)用層和數(shù)據(jù)庫層進行,通過優(yōu)化明顯耗時、占資源的SQL語句可以減少這種交換。

      3) 由于網(wǎng)絡(luò)連接可以通過局域網(wǎng)或者廣域網(wǎng)實現(xiàn),因而在表示層和應(yīng)用層之前的數(shù)據(jù)傳輸要盡可能少,同時盡可能減少與其他系統(tǒng)之間的接口,優(yōu)化接口程序,進一步減少數(shù)據(jù)傳輸量。

      5 結(jié)束語

      SAP系統(tǒng)長時間地運行,設(shè)備的CPU、內(nèi)存、硬盤等硬件設(shè)備不間斷地工作,硬件老化情況將不可避免地發(fā)生。同時隨著數(shù)據(jù)量的增加以及業(yè)務(wù)種類的不斷增加,硬件資源不足導(dǎo)致瓶頸出現(xiàn),造成系統(tǒng)性能降低。所以必須時刻關(guān)注硬件設(shè)備運行狀況,了解系統(tǒng)負載的極限值,并針對需求添加硬件配件,另外還要及時對超期服役的設(shè)備進行更換,這樣不但可以有效降低硬件瓶頸,同時還可以規(guī)避設(shè)備老化帶來的故障隱患,保障系統(tǒng)安全運行。

      [1] 托馬斯·施奈德.SAP性能優(yōu)化指南[M].勾侃,譯.北京: 東方出版社,2006.

      [2] 希格里德·哈格曼,藍·威爾.SAP R/3系統(tǒng)管理[M].黃兆森,譯.北京: 東方出版社,2006.

      [3] 黃佳.SAP業(yè)務(wù)數(shù)據(jù)傳輸指南——圖靈SAP技術(shù)叢書[M].北京: 人民郵電出版社,2006.

      [4] 黃驍儉,周越亭,尹捷.中小企業(yè)信息化與SAP系統(tǒng)實現(xiàn)/SAP管理實踐叢書[M].北京: 機械工業(yè)出版社,2004.

      [5] 金圣俊.SAP ABAP開發(fā)從入門到精通[M].張鐘淑,譯.北京: 機械工業(yè)出版社,2013.

      [6] 唐嘉,彭功濤,方玉鳳.SAP實用程序開發(fā)進階[M].北京: 北京希望電子出版社,2012.

      [7] 黃佳.SAP程序設(shè)計[M].北京: 人民郵電出版社,2005.

      [8] 王宏.實戰(zhàn)SAP程序開發(fā)——從實例學(xué)SAP ABAP編程[M].北京: 電子工業(yè)出版社,2006.

      [9] 黃佳.SAP高級應(yīng)用開發(fā)[M].北京: 人民郵電出版社,2008.

      劉皓(1983—),男,天津人,2006年畢業(yè)于天津科技大學(xué)信息與計算科學(xué)專業(yè),獲學(xué)士學(xué)位,現(xiàn)就職于中國石化銷售有限公司天津石油分公司,主要從事操作系統(tǒng)、數(shù)據(jù)庫、SAP系統(tǒng)及虛擬化平臺管理,任工程師。

      TP273

      B

      1007-7324(2017)03-0080-04

      稿件收到日期: 2017-01-14,修改稿收到日期: 2017-04-08。

      猜你喜歡
      進程語句內(nèi)存
      重點:語句銜接
      債券市場對外開放的進程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      精彩語句
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      社會進程中的新聞學(xué)探尋
      基于內(nèi)存的地理信息訪問技術(shù)
      我國高等教育改革進程與反思
      Linux僵死進程的產(chǎn)生與避免
      作文語句實錄
      南澳县| 陵水| 孝感市| 历史| 三门峡市| 桂平市| 江门市| 舞阳县| 满城县| 南昌市| 车险| 安达市| 太谷县| 苏尼特左旗| 同德县| 新河县| 确山县| 沐川县| 尼玛县| 双城市| 天门市| 临江市| 昌邑市| 巨野县| 合阳县| 内江市| 潍坊市| 商丘市| 泰来县| 婺源县| 梅州市| 区。| 秀山| 河北省| 张家港市| 梅河口市| 连城县| 阿克苏市| 潜山县| 宁波市| 沙田区|