स्टैंडअलोन प्रक्रियाओं और कार्यों पर पैकेज के लाभ क्या हैं?


13

पैकेजों के ऑरेकल डेटाबेस में अकेले प्रक्रियाओं और कार्यों के लिए पैकेज क्यों पसंद किए जाने चाहिए, इस सवाल के लिए एक विहित जवाब की तलाश में।

जवाबों:


12

पैकेज के लाभ

लॉजिकल ग्रुपिंग - एक साथ काम करने वाले तरीकों को केवल तार्किक रूप से अलग-अलग लेकिन शारीरिक रूप से अलग करने के बजाय एक एकजुट इकाई में रखा जा सकता है।

सुरक्षित निजी तरीके - कार्य और कार्यविधियाँ पैकेज के लिए निजी बनाई जा सकती हैं और केवल इसका उपयोग किया जा सकता है। यह सार्वजनिक सतह को सरल और अधिक सुरक्षित बनाता है।

विशेषाधिकार प्रबंधन - अनुमतियों को एक बार प्रक्रियाओं के एक समूह के लिए प्रदान किया जा सकता है जो आवश्यक प्रत्येक कार्य / फ़ंक्शन के लिए अलग से बजाय एक साथ काम करते हैं।

सुरक्षित रैपिंग - लिपटे कार्यों / प्रक्रियाओं की तुलना में रैप किए गए पैकेजों को खोलना अधिक कठिन होता है।

सरलीकृत नामकरण - एक बड़ा नामस्थान उन नामों की अनुमति देता है जो सरल हैं और अन्य पैकेजों में फिर से उपयोग किए जा सकते हैं।

बेहतर प्रदर्शन - पैकेजों को संकलित किया जा सकता है और अन्य तरीकों की तरह टुकड़े-टुकड़े के बजाय संपूर्णता में मेमोरी में लोड किया जाता है। यदि यह मौजूद है तो यह लाभ अन्य लाभों की तुलना में न्यूनतम है।

कम अमान्यकरण - एक पैकेज निकाय को बदलना निर्भरता को अमान्य नहीं करता है क्योंकि एक फ़ंक्शन या प्रक्रिया बदलती है।

अनूठी विशेषताएं - पैकेज चर, पैकेज स्थिरांक, प्रारंभिककरण, सत्र राज्य, पैकेज टिप्पणियाँ और अतिभारित तरीके।

संदर्भ:
11.2 गाइड गाइड
टॉम से सवाल पूछें
StackOverflow.com पैकेज प्रदर्शन पर सवाल
PL / SQL प्रस्तुति (पीडीएफ) खोलना


2
मुझे प्रदर्शन लाभ से असहमत होना होगा। यदि कोड को मेमोरी में लोड करना एक सराहनीय प्रतीक्षा घटना है, तो कुछ बहुत बुरा हुआ है। और इस बात की प्रबल संभावना है कि संकुल के प्रदर्शन में कमी आएगी क्योंकि आपको अधिक कोड में पढ़ना होगा जब आप पूरे पैकेज को लोड करते हैं जब आपको केवल एक ही विधि की आवश्यकता होती है। न तो मामले में, हालांकि, प्रदर्शन अंतर औसत दर्जे का होगा।
जस्टिन केव

@ जस्टिन - यह बिंदु 11.2 कॉन्सेप्ट गाइड से है। यहां यह कहा गया है: "बेहतर प्रदर्शन - जब पैकेज में एक प्रक्रिया को पहली बार कहा जाता है, तो एक पूरे पैकेज को छोटे टुकड़ों में मेमोरी में लोड किया जाता है। यह लोड एक ऑपरेशन में पूरा होता है, क्योंकि स्टैंडअलोन के लिए आवश्यक अलग-अलग लोड के विपरीत। प्रक्रियाएँ। जब संबंधित पैक की गई प्रक्रियाएँ होती हैं, तो मेमोरी में संकलित कोड को चलाने के लिए कोई डिस्क I / O की आवश्यकता नहीं होती है। "
लीह रिफ़ेल

4
मैं मानता हूं कि प्रलेखन का दावा है कि एक प्रदर्शन लाभ है। प्रलेखन गलत है या, न्यूनतम, अपर्याप्त है। सबसे अच्छा मामला, "लाभ" का परिमाण न्यूनतम है। और लाभ का संकेत अज्ञात है। जैसे टेबल स्कैन अधिक कुशल होता है, यदि आप अधिकतर पंक्तियों को पढ़ रहे हों और एक इंडेक्स एक्सेस अधिक कुशल हो, यदि आप एक पंक्ति को पढ़ रहे हों, तो एक बार में पूरे पैकेज को एक बार में पढ़ लेना यदि आप जा रहे हैं तो यह फायदेमंद है। हर विधि और नुकसान का उपयोग करें यदि आप वास्तव में केवल एक विधि चाहते थे।
जस्टिन केव

1
@ जस्टिन - आपका मूल्यांकन तर्कसंगत लगता है। मुझे कुछ निश्चित एक रास्ता या दूसरा नहीं मिला है, इसलिए मैंने जवाब में एक चेतावनी जोड़ दी। आपके सहयोग के लिए धन्यवाद।
लेह रिफ़ेल

मुझे लगता है कि यह प्रदर्शन लाभ कैशिंग के समान है। यदि आप केवल उस प्रक्रिया का उपयोग करते हैं और आप इसे कम बार उपयोग करते हैं तो आपको कोई प्रदर्शन लाभ नहीं मिलता है। लेकिन अगर आप इसे बार-बार उपयोग करते हैं और इस पैकेज में किसी अन्य प्रक्रिया का उपयोग किया जाता है तो आपको लाभ मिलता है। चारों ओर डेवलपर कैशिंग का उपयोग कर रहा है, क्योंकि वास्तविक प्रदर्शन नहीं है लेकिन कथित प्रदर्शन में सुधार हुआ है। चूंकि संबंधित प्रक्रियाएं एक ही पैकेज में रखी जाती हैं, इसलिए यह तर्कसंगत है कि कुछ अन्य प्रक्रियाओं को भी कहा जाएगा। यह एक ही पैकेज में दो प्रक्रियाओं को कॉल करने की संभावना के बारे में है। और आम तौर पर, उच्च संभावना के साथ पढ़ा जाता है, यह होता है।
एटिला ओजगुर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.