2012-12-21 16 views
6

क्या 'MOVE TO' बनाम x = y के बीच कोई प्रदर्शन लाभ है? मेरे पास एक बहुत पुराना प्रोग्राम है जिसे मैं अनुकूलित कर रहा हूं और जानना चाहूंगा कि क्या यह सभी मूव को खींचने के लायक है या नहीं। एबीएपी अनुकूलन पर कोई अन्य सामान्य सुझाव भी बहुत अच्छा होगा।ABAP अनुकूलन

उत्तर

9

नहीं, यह वही ऑपरेशन है जो दो अलग-अलग तरीकों से व्यक्त किया गया है। वहां हासिल करने के लिए कुछ नहीं। यदि आप जेनेरिक संकेतों के लिए बाहर हैं, there's a good book available कि मैं विस्तार से अध्ययन करने की सिफारिश करता हूं। यदि आपको किसी विशिष्ट प्रोग्राम को अनुकूलित करना है, तो ट्रेसिंग टूल का उपयोग करें (पर्याप्त वर्तमान रिलीज़ में लेनदेन SAT)।

1

दो कथनों equivalent हैं:

" एक चर गंतव्य के लिए एक डेटा वस्तु स्रोत के मूल्य निर्दिष्ट करने के लिए निम्न कथन का उपयोग:

MOVE source TO destination. 

या समकक्ष बयान

destination = source. 

"

0

1) को देखने के लिए ABAP भाषा में SELECT कथन का उपयोग करते समय आपको सावधान रहना चाहिए अच्छा है यह स्थिरता प्रयोजनों के लिए मुख्य रूप से है। अनावश्यक डेटाबेस कनेक्शन महत्वपूर्ण रूप से एबीएपी कार्यक्रम के प्रदर्शन को कम करता है।

2) कार्यों के साथ आंतरिक तालिका का उपयोग करते समय आपको स्मृति उपयोग को कम करने के संदर्भ में इसे कॉल करना चाहिए।

कॉल करके संदर्भ: स्मृति सबरूटीन भीतर चर करने के लिए बनाया location.Changes के सूचक के पास सबरूटीन बाहर चर प्रभावित करता है।

3) वर्करेरिया के साथ आंतरिक तालिकाओं का उपयोग नहीं करना चाहिए।

4) नेस्टेड लूप का उपयोग करते समय, सॉर्टिंग एल्गोरिदम का उपयोग करें।

0

वे समान हैं, जैसे ADD कीवर्ड और + ऑपरेटर।

आप अपने ABAP अनुकूलन करने के लिए चाहते हैं, तो मैं पाया है सबसे बड़ा दोषी होने के लिए:

  • द्विआधारी लुकअप ठीक से (आंतरिक) तालिका कुंजियों का उपयोग और/या नहीं। जब टैबलेट उपयोग की बात आती है तो एबीएपी का सिंटैक्स मस्तिष्क-मृत होता है। कुशलतापूर्वक तालिकाओं के साथ काम करने के लिए जानें। मूल रूप से बेहतर/इष्टतम/सुरुचिपूर्ण उच्च-स्तरीय कोड लिखें। यह हमेशा एक विजेता है!

  • कम निर्देश == कम समय। कम निर्देश जो आपने को तेजी से प्रोग्राम चलाएंगे। यह तंग loops में महत्वपूर्ण है ... मैं पता है कि यह स्पष्ट लगता है, लेकिन एबीएपी इतना धीमा है, कि अगर आप वास्तव में महत्वपूर्ण कार्यक्रमों को अनुकूलित करने की कोशिश कर रहे हैं, तो इससे कोई फर्क पड़ता है। (हमारे पास प्रक्रियाएं होती हैं जो दिन चलाती हैं ... और एक घंटे या तो 0 शेर लगाना एक फर्क पड़ता है!)

  • प्रकार मिश्रण मत करो। निहित रूपांतरणों के लिए थोड़ा सा ओवरहेड है ... उदाहरण के लिए यदि आप string डेटा प्रकार प्रारंभ कर रहे हैं, तो (बैकटिक) उद्धरणों के साथ सही शाब्दिक स्ट्रिंग का उपयोग करें: `literal`। यह कुंजी का उपयोग कर तालिकाओं में देखने के लिए भी गिना जाता है ... सटीक मिलान डेटाटाइप का उपयोग करें।

  • फ़ंक्शन कॉल ... मैं फंक्शन कॉल के ओवरहेड पर दबाव नहीं डाल सकता पर्याप्त ... जितना कम आपके पास बेहतर होगा। किसी भी वास्तविक कंप्यूटर प्रोग्रामर के मुकाबले जाता है, लेकिन वहां आपके पास है ... ABAP विशेष मामला है।

  • लूप ASSIGNING का उपयोग कर (या REF TO - कुछ प्रकार पर थोड़ी धीमी), एक प्लेग की तरह जांच करने से बचें।

पुनश्च: यह भी ध्यान रखें कि SWITCH बयान सिर्फ महिमा IF सशर्त, ... इस प्रकार शीर्ष करने के लिए सबसे आम स्थिति को स्थानांतरित कर रहे हैं!

1

नहीं, वे वही हैं। (

1) यदि आप इस कदम-इसी जहां संभव हो उपयोग करते हैं, अपने कोड एक बहुत, अधिक संक्षिप्त मॉड्यूलर, और बढ़ाई जा सकता है इस अतीत दूर में:

यहाँ प्रदर्शन को बढ़ाने के अपने वर्षों से एक जोड़े को त्वरित संकेत है पर फंसे हुए थे लेकिन इसके लिए तकनीकी कारण अब आम तौर पर लागू नहीं होते हैं)।

2) हर मौके पर उपयोग सैट, और आंतरिक तालिका पर नज़र रखने को चालू करने के लिए सुनिश्चित हो। यह अंधेरे में फर्नीचर पर ठोकर बनाम रोशनी को चालू करने जैसा है।

3) डेटाबेस परत बनाने के लिए जितना संभव हो उतना काम करते हैं। जहां भी संभव हो, प्रश्नों को गठबंधन करने का प्रयास करें, विशेष रूप से परिणाम सेट को जोड़ते समय। एक जॉइन से जुड़े दो प्रश्न आमतौर पर चुनिंदा> itab> सभी प्रविष्टियों के लिए चयन से बेहतर होते हैं।

4) यह थोड़ा उन्नत है, लेकिन सभी प्रविष्टियों के लिए अक्सर वाक्यांश में बराबर का चयन-विकल्पों की तुलना में बहुत धीमी प्रदर्शन है। ऐसा लगता है क्योंकि उत्तरार्द्ध डेटाबेस परत के लिए एक बड़ी क्वेरी के रूप में बनाया गया है जबकि पूर्व को डेटाबेस परत के लिए कई यात्राओं की आवश्यकता है। बेशक, यह है कि यदि आपके चयन विकल्पों में आपके पास बहुत से रिकॉर्ड हैं तो डेटाबेस परत पर उत्पन्न क्वेरी आपके सिस्टम पर स्वीकार्य आकार से अधिक हो जाएगी, लेकिन उस सीमा के भीतर बड़े प्रदर्शन लाभ संभव हैं। आम तौर पर, एसएपी सिर्फ चयन विकल्पों को प्यार करता है।

5) सूचकांक, सूचकांक, सूचकांक!

1

सभी चालों में से पहला वास्तव में अधिक प्रदर्शन को प्रभावित नहीं करता है।

क्या परियोजनाओं मैं के लिए काम किया में काफी एक बहुत प्रभावित कर रहा है पीछा कर रहा है:

  1. नेस्टेड छोरों (बहुत बुराई)। उदाहरण के लिए, सभी दस्तावेजों के माध्यम से लूप, और प्रत्येक दस्तावेज़ के लिए इसे देखने के लिए सिंगल का चयन करें कंपनी कोड को प्रदर्शित करने की अनुमति है। इसके बजाय, कंपनी कोड की एक सूची बनाएं, डीबी से एक बार उनसे परामर्श लें और इसके बजाय इस परिणाम तालिका से परामर्श लें।

  2. उपयोग हैश या क्रमबद्ध टेबल जहां संभव हो।जहां संभव नहीं है, मानक तालिका का उपयोग करें, लेकिन इसे कुंजी द्वारा क्रमबद्ध करें और "बाइनरी खोज" का उपयोग करें।

  3. सभी प्रमुख क्षेत्रों द्वारा डीबी से चुनें। यदि संभव नहीं है, तो इंडेक्स बनाने पर विचार करें। छोटे और सरल चयनों के लिए, जुड़ें का उपयोग करें। जुड़ने का उपयोग करके बड़े चयन के लिए अभी भी तेजी से काम करेगा, लेकिन इसका पालन करना मुश्किल होगा।

  4. मामूली बात - टेबल लाइन पढ़ने के लिए फ़ील्ड प्रतीकों का उपयोग करें, इससे यह बहुत तेज हो जाता है।

0

आप एडीटी ग्रहण के साथ सीडीएस बना सकते हैं। या विचार (se11) का चयन करने के लिए अच्छा प्रदर्शन है।

संबंधित मुद्दे