Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle 11G - डालने पर अनुक्रमण का प्रदर्शन प्रभाव

यह सच है कि यदि आपको एक या अधिक इंडेक्स को संशोधित करने की आवश्यकता नहीं है और संभवतः बाधा जांच भी नहीं करनी है, तो तालिका को संशोधित करना तेज़ है, लेकिन यदि आपको उन इंडेक्स को जोड़ना है तो यह भी काफी हद तक अप्रासंगिक है। आपको उस प्रणाली में पूर्ण परिवर्तन पर विचार करना होगा जिसे आप प्रभावित करना चाहते हैं, न कि उसके केवल एक भाग पर।

स्पष्ट रूप से यदि आप एक ऐसी तालिका में एक पंक्ति जोड़ रहे हैं जिसमें पहले से ही लाखों पंक्तियाँ हैं तो अनुक्रमणिका को गिराना और फिर से बनाना मूर्खता होगी।

हालाँकि, भले ही आपके पास एक पूरी तरह से खाली तालिका हो जिसमें आप कई मिलियन पंक्तियाँ जोड़ने जा रहे हों, फिर भी अनुक्रमण को बाद तक स्थगित करना धीमा हो सकता है।

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

विकल्प, यदि आपके पास टेबल पर पांच इंडेक्स हैं, तो इंडेक्स बनाने के लिए इसे लोड करने के बाद पांच पूर्ण टेबल स्कैन करना होगा।

जाहिर है कि यहां बड़े पैमाने पर ग्रे क्षेत्र शामिल हैं, लेकिन इसके लिए अच्छा किया गया है:

  1. प्रश्न पूछने का अधिकार और अंगूठे के सामान्य नियम, और
  2. अपने मामले में तथ्यों को निर्धारित करने के लिए वास्तविक परीक्षण चलाना।

संपादित करें:

आगे के विचार -- अनुक्रमणिका गिराए जाने पर आप एक बैकअप चलाते हैं। अब, एक आपातकालीन पुनर्स्थापना के बाद, आपके पास एक स्क्रिप्ट होनी चाहिए जो यह सत्यापित करती है कि सभी अनुक्रमणिकाएं ठीक हैं, जब आप सिस्टम को वापस लाने के लिए व्यवसाय को अपनी गर्दन नीचे कर रहे हैं।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल टाइमस्टैम्प नामक फ़ील्ड होने पर ट्रिगर बनाने में विफल क्यों होता है?

  2. किसी दिए गए पैकेज में घोषित सभी प्रकार के डेटा की जानकारी कैसे प्राप्त करें

  3. एसक्यूएल - कॉलम के अनूठे संयोजन की गणना कैसे करें

  4. Oracle:UPSERT कैसे करें (किसी तालिका में अद्यतन या सम्मिलित करें?)

  5. Oracle में जॉइन क्वेरी के साथ अपडेट करें