• 
    

    
    

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

      企業(yè)ABAP程序性能優(yōu)化研究

      2017-03-24 20:38:36馬一然吳衛(wèi)亮范春迎
      中國(guó)科技縱橫 2017年2期
      關(guān)鍵詞:性能優(yōu)化二次開(kāi)發(fā)

      馬一然++吳衛(wèi)亮++范春迎

      摘 要:近年來(lái)鋼鐵行業(yè)形勢(shì)一直處于低迷狀態(tài),不少鋼鐵企業(yè)陷入虧損局面。面對(duì)著嚴(yán)峻的形勢(shì),利用信息化技術(shù)提高生產(chǎn)自動(dòng)化、管理科學(xué)化是增加企業(yè)的競(jìng)爭(zhēng)力的有效方法。本文主要對(duì)企業(yè)信息化建設(shè)中用戶(hù)使用的自開(kāi)發(fā)ABAP程序性能的調(diào)優(yōu)做了深入研究,提升程序的執(zhí)行效率,使信息系統(tǒng)達(dá)到快速、穩(wěn)定運(yùn)行的效果。

      關(guān)鍵詞:ABAP;性能優(yōu)化;二次開(kāi)發(fā)

      中圖分類(lèi)號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-2064(2017)02-0030-01

      1 引言

      SAP R/3系統(tǒng)是一個(gè)基于客戶(hù)/服務(wù)機(jī)結(jié)構(gòu)和開(kāi)放系統(tǒng)的、集成的企業(yè)資源計(jì)劃系統(tǒng)。依據(jù)業(yè)務(wù)的靈活性,實(shí)際業(yè)務(wù)需求,SAP平臺(tái)上需要進(jìn)行大量的系統(tǒng)二次設(shè)計(jì)、開(kāi)發(fā)以達(dá)到滿(mǎn)足業(yè)務(wù)需求的目的。隨著系統(tǒng)應(yīng)用的時(shí)間的增長(zhǎng),系統(tǒng)中數(shù)據(jù)量成倍增加,如何在海量數(shù)據(jù)中,使用戶(hù)的使用效果達(dá)到最優(yōu)、程序執(zhí)行效率最高,是系統(tǒng)程序開(kāi)發(fā)人員一直要考慮的問(wèn)題。

      2 程序調(diào)優(yōu)方法

      2.1 程序邏輯角度

      系統(tǒng)工程師首先要充分了解業(yè)務(wù)需求,針對(duì)特定的業(yè)務(wù)需求制定開(kāi)發(fā)方案,方案簡(jiǎn)潔,程序效率才會(huì)達(dá)到最優(yōu)。例如采購(gòu)員需要嚴(yán)格按照合同信息進(jìn)行物品采購(gòu)。為了檢驗(yàn)合同的有效性,可能需要查看某采購(gòu)組織、采購(gòu)員、創(chuàng)建日期范圍內(nèi)的相關(guān)合同,都做過(guò)哪些修改。要實(shí)現(xiàn)這一功能有兩種方法,一種是根據(jù)特定條件先去合同抬頭表EKKO中篩選符合條件的合同信息,然后根據(jù)范圍的合同信息去合同修改歷史表CDHDR和CDPOS中取合同修改的相關(guān)信息;另外一種是先去合同修改歷史表CDHDR和CDPOS中把所有曾經(jīng)修改的合同信息篩選出來(lái),然后再去合同抬頭表EKKO中去除不符合篩選條件的合同。因?yàn)楹贤男薷男畔⒋嬖谟跉v史表中,數(shù)據(jù)量巨大,很明顯第一種方案程序效率較高,所以程序開(kāi)發(fā)邏輯是判斷程序性能是否最優(yōu)最重要的因素。

      2.2 調(diào)優(yōu)工具應(yīng)用

      基于SAP開(kāi)發(fā)平臺(tái)進(jìn)行的程序開(kāi)發(fā)工作,可以通過(guò)系統(tǒng)自帶的工具檢測(cè)程序性能,其中包括:SE30:主要用于某個(gè)事務(wù)、程序或功能模塊的運(yùn)行時(shí)間分析。這個(gè)結(jié)果評(píng)價(jià)界面最重要的信息便是在數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器層的總共運(yùn)行時(shí)間。對(duì)于一個(gè)ABAP程序來(lái)說(shuō)數(shù)據(jù)庫(kù)和系統(tǒng)的運(yùn)行時(shí)間應(yīng)該比較短,至少不能太大。

      ST05性能分析:不僅提供SQL Trace 功能,還可以進(jìn)行Buffer trace, Enqueue trace 以及RFC trace 等。分析里面是否有重復(fù)FETCH一個(gè)表,看看FETCH一次是否有超過(guò)幾十萬(wàn)微妙的時(shí)間,這樣可以考慮索引是否使用正確,然后是否有重復(fù)open多次的,可以考慮是否存在LOOP select。然后還有雙擊后面的select語(yǔ)句,可以進(jìn)入去看這個(gè)SQL語(yǔ)句的解析。

      2.3 注意程序開(kāi)發(fā)語(yǔ)言使用

      2.3.1 減少與數(shù)據(jù)庫(kù)的交互

      訪問(wèn)數(shù)據(jù)庫(kù)非常耗時(shí),盡量減少程序與數(shù)據(jù)庫(kù)的交互操作。對(duì)于取描述字段的需求,可以一次性的把要處理的數(shù)據(jù)讀入到內(nèi)表中。讀取時(shí)盡量不用SELECT * INTO CORESPONDING TABLE語(yǔ)句,使用該語(yǔ)句數(shù)據(jù)庫(kù)會(huì)查詢(xún)數(shù)據(jù)庫(kù)表中所有字段,然后再匹配內(nèi)表里面的字段,嚴(yán)重影響程序效率。應(yīng)該使用SELECT...INTO TABLE語(yǔ)句,然后用SORT語(yǔ)句對(duì)內(nèi)表進(jìn)行排序。針對(duì)取到的數(shù)據(jù)讀取時(shí)使用語(yǔ)法read binary search二分法進(jìn)行查找,這樣可以大大的提升程序的效率。但是在表字段很多的情況下,盡量不要使用SELECT*返回所有字段值,最好只返回指定字段的值。如果肯定只有一條記錄返回,也可以使用SELECT SINGLE來(lái)讀取記錄,但該語(yǔ)法一定不要放在LOOP和SELECT...ENDSELECT里面用。

      2.3.2 使用正確的索引

      好的索引非常好。不好的索引可能索引比表大,也有的索引讓當(dāng)前程序變快,其它的程序卻變慢了。索引會(huì)占用額外的數(shù)據(jù)庫(kù)空間,還會(huì)降低插入/修改的速度(雖然可提高查詢(xún)速度),所以需要考慮實(shí)用性,肯定不是越多越好。如果表中已有類(lèi)似的索引,則不推薦新建。而對(duì)于容量大的、被多個(gè)程序訪問(wèn)的表加索引就更要謹(jǐn)慎了,比如VBFA、MSEG、LIPS、VBAP、CDHDR等等。

      2.3.3 INNER JOIN的使用

      INNER JOIN獲取數(shù)據(jù)時(shí),盡量不要用太多的表關(guān)聯(lián),特別是大表關(guān)聯(lián),JOIN超過(guò)3個(gè)表會(huì)出現(xiàn)性能問(wèn)題。對(duì)于MSEG,MKPF,LIPS等表,盡量少用inner join。如果要使用該語(yǔ)法,將有效的查詢(xún)條件所對(duì)應(yīng)的表放在前面。換言之,讓查詢(xún)第一個(gè)表后所得到的結(jié)果集就盡可能小。比如有業(yè)務(wù)需求是查詢(xún)采購(gòu)訂單的收貨情況。需要的數(shù)據(jù)庫(kù)表有EKKP、EKPO、EKBE等。再分析業(yè)務(wù)需求,報(bào)表主要查詢(xún)最近幾天創(chuàng)建采購(gòu)訂單的收貨情況。那么最有效的限制條件是訂單的創(chuàng)建日期,表連接的主表就應(yīng)該選用EKKO。

      2.3.4 使用批量修改內(nèi)表代替逐行修改

      不推薦使用逐行修改內(nèi)容語(yǔ)法,如下:

      LOOP AT GT_AGE.

      IF GT_AGE-FLAG IS INITIAL.

      GT_AGE-FLAG = ‘X.

      ENDIF.

      MODIFY GT_AGE.

      ENDLOOP.

      推薦使用批量修改內(nèi)容語(yǔ)法,如下:

      GT_AGE-FLAG = ‘X.MODIFY GT_AGE TRANSPORTING FLAG WHERE FLAG IS INITIAL.

      3 結(jié)語(yǔ)

      隨著企業(yè)應(yīng)用信息化系統(tǒng)時(shí)間的增長(zhǎng),系統(tǒng)中數(shù)據(jù)量成倍增加,龐大的數(shù)據(jù)對(duì)程序的運(yùn)行效率產(chǎn)生巨大的影響,有些程序會(huì)因?yàn)檫\(yùn)行超時(shí)而與數(shù)據(jù)庫(kù)斷開(kāi)連接,用戶(hù)需要長(zhǎng)時(shí)間等待,程序調(diào)優(yōu)工作將會(huì)是一個(gè)任重道遠(yuǎn)的工作。做優(yōu)化不是簡(jiǎn)單的技術(shù)活,既要考慮報(bào)表的實(shí)際需求,也要考慮企業(yè)的業(yè)務(wù)狀況。比如采用零售模式的企業(yè)客戶(hù)量很大,批發(fā)模式的企業(yè)客戶(hù)量較小;食品飲料行業(yè)的物料號(hào)一般不多,而機(jī)械行業(yè)的物料號(hào)則往往多而繁雜;零售業(yè)的訂單量很大、時(shí)間性很強(qiáng),部分行業(yè)則可能訂單量小但價(jià)值高。只有充分考慮到企業(yè)的業(yè)務(wù)特點(diǎn),與具體業(yè)務(wù)相結(jié)合,才能更有效地提高報(bào)表性能及良好的可擴(kuò)展性。報(bào)表性能的提升不僅可以帶來(lái)完美的用戶(hù)體驗(yàn),最主要可以提高用戶(hù)應(yīng)用SAP系統(tǒng)的效率既而提升生產(chǎn)效率,達(dá)到SAP系統(tǒng)成為企業(yè)高效發(fā)展的一枚利器。

      猜你喜歡
      性能優(yōu)化二次開(kāi)發(fā)
      淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      西門(mén)子Operate高級(jí)編程的旋轉(zhuǎn)坐標(biāo)系二次開(kāi)發(fā)
      淺談Mastercam后處理器的二次開(kāi)發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      SQL Server數(shù)據(jù)庫(kù)性能優(yōu)化的幾點(diǎn)分析
      Web應(yīng)用的前端性能優(yōu)化
      660MW超超臨界火電機(jī)組RB性能優(yōu)化
      WEB網(wǎng)站緩存性能優(yōu)化
      淺析Lustre的優(yōu)化設(shè)置
      Oracle數(shù)據(jù)庫(kù)性能調(diào)整與優(yōu)化分析
      科技視界(2016年1期)2016-03-30 14:27:50
      Micaps3.2 版本二次開(kāi)發(fā)入門(mén)淺析
      西藏科技(2015年12期)2015-09-26 12:13:51
      灯塔市| 宜宾县| 东辽县| 湘阴县| 巫山县| 嵊泗县| 郸城县| 新龙县| 饶河县| 舞阳县| 枝江市| 天镇县| 阳新县| 封开县| 蓬安县| 遵化市| 昆山市| 栖霞市| 甘孜县| 京山县| 旬邑县| 当涂县| 饶平县| 涿州市| 兴化市| 江华| 尚志市| 子洲县| 若尔盖县| 东安县| 定襄县| 庆元县| 婺源县| 呼和浩特市| 呈贡县| 广德县| 舞阳县| 阳谷县| 崇明县| 江陵县| 克东县|