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

फिक्स्ड-लेंथ रिकॉर्ड और फिक्स्ड-लेंथ फील्ड डेटाबेस के प्रदर्शन को कैसे बढ़ाते हैं?

सरलीकृत, वैचारिक, गैर-डेटाबेस-विशिष्ट स्पष्टीकरण:

जब अधिकतम संभव रिकॉर्ड लंबाई पहले से ज्ञात हो, तो रिकॉर्ड का अंत/अगले रिकॉर्ड की शुरुआत स्थिर समय में पाई जा सकती है। ऐसा इसलिए है क्योंकि वह स्थान सरल जोड़ का उपयोग करके गणना योग्य है, जो सरणी अनुक्रमण के समान है। कल्पना कीजिए कि मैं int . का उपयोग कर रहा हूं s रिकॉर्ड करने के लिए पॉइंटर्स के रूप में, और यह कि रिकॉर्ड आकार एक पूर्णांक स्थिरांक है जिसे कहीं न कहीं परिभाषित किया गया है। फिर, वर्तमान रिकॉर्ड स्थान से अगले स्थान पर जाने के लिए:

int current_record = /* whatever */;
int next_record = current_record + FIXED_RECORD_SIZE;

बस!

वैकल्पिक रूप से, स्ट्रिंग-टर्मिनेटेड (या अन्यथा सीमांकित) रिकॉर्ड और फ़ील्ड का उपयोग करते समय, आप कल्पना कर सकते हैं कि अगला फ़ील्ड/रिकॉर्ड एक रैखिक-समय स्कैन द्वारा पाया जाता है, जिसे हर वर्ण को तब तक देखना होता है जब तक कि सीमांकक नहीं मिल जाता। पहले की तरह,

char DELIMITER = ','; // or whatever
int current_record = /* whatever */;
int next_record = current_record;
while(character_at_location(next_record) != DELIMITER) {
    next_record++;
}

यह वास्तविक दुनिया के कार्यान्वयन का एक सरल या भोला संस्करण हो सकता है, लेकिन सामान्य विचार अभी भी खड़ा है:आप एक ही ऑपरेशन को निरंतर समय में आसानी से नहीं कर सकते हैं, और भले ही यह निरंतर समय हो, यह उतना तेज़ होने की संभावना नहीं है सिंगल ऐड ऑपरेशन कर रहा है।



  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. ora-01722 दो दृश्यों के माइनस ऑपरेटर पर गिनती (1) का उपयोग करके अमान्य संख्या

  3. पीएल/एसक्यूएल प्रोग्राम को निरस्त करें

  4. Oracle ojdbc8 12.2.0.1 मावेन द्वारा निषिद्ध

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