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

Oracle में एक लाख पंक्तियों को सम्मिलित करने का सबसे तेज़ तरीका

आपका दृष्टिकोण स्मृति समस्याओं को जन्म देगा। सबसे तेज़ तरीका यह होगा [अशक्त परिदृश्य की देखभाल के लिए डेविड की टिप्पणी के बाद संपादित प्रश्न]:

insert into dtr_debtors1(SSN)
select a.S1+level
   from dual,(select nvl(max(ssn),0) S1 from dtr_debtors1) a
connect by level <= 10000 

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

क्वेरी द्वारा स्मृति उपयोग पर कुछ और विवरण:

प्रत्येक क्वेरी का अपना पीजीए [प्रोग्राम ग्लोबल एरिया] होगा जो मूल रूप से प्रत्येक क्वेरी के लिए उपलब्ध रैम है। यदि यह क्षेत्र क्वेरी परिणामों को वापस करने के लिए पर्याप्त नहीं है तो SQL इंजन गोलबल टेम्प टेबलस्पेस का उपयोग करना शुरू कर देता है जो हार्ड डिस्क की तरह होता है और क्वेरी धीमी होने लगती है। यदि क्वेरी के लिए आवश्यक डेटा इतना बड़ा है कि अस्थायी क्षेत्र भी पर्याप्त नहीं है तो आपको टेबलस्पेस त्रुटि होगी।

इसलिए हमेशा क्वेरी डिज़ाइन करें ताकि वह पीजीए में रहे अन्यथा यह एक लाल झंडा है।



  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. एक्सेस में ओडीबीसी लिंक्ड टेबल के लिए थोक INSERTs के प्रदर्शन को कैसे बढ़ाया जाए?

  3. मैं Oracle डेटाबेस में लॉक किए गए उपयोगकर्ताओं की सूची कैसे प्राप्त करूं?

  4. मेरे कर्सर को मेरे ऑरैकल पीएल/एसएलक्यू फ़ंक्शन में लौटा दिया लेकिन सभी पंक्तियों को वापस नहीं किया जा रहा है। क्या आप Oracle pl/sql फ़ंक्शन में केवल 1 पंक्ति लौटा सकते हैं?

  5. रैंक और विभाजन के साथ SQL