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

VARCHAR2 कॉलम को अधिक लंबाई के साथ परिभाषित करने का प्रभाव

उत्तर इस बात पर निर्भर करता है कि आप डेटाबेस तालिका में कॉलम के बारे में बात कर रहे हैं, या पीएल/एसक्यूएल प्रोग्राम में एक चर के बारे में बात कर रहे हैं।

डेटाबेस कॉलम

उपयोग किए गए संग्रहण की मात्रा संग्रहीत डेटा के आकार के अनुपात में होती है।

PL/SQL चर

यदि चर 1 से 4000 (11g+) / 1999 (10g या इससे पहले) के आकार के साथ घोषित किया गया है, तो अधिकतम लंबाई के लिए मेमोरी आवंटित की जाएगी (यानी VARCHAR2(100) को कम से कम 100 बाइट्स मेमोरी की आवश्यकता होगी)।

यदि वेरिएबल को 4001 (11g+) / 2000 (10g या इससे पहले) या अधिक आकार के साथ घोषित किया जाता है, तो मेमोरी को संग्रहीत डेटा के आकार के अनुसार आवंटित किया जाएगा। (एक दिलचस्प पक्ष प्रश्न होगा, यदि चर का मान बदल दिया जाता है, तो स्मृति का आकार कैसे बदला जाता है - क्या यह नए आकार के साथ एक और बफर पुन:आवंटित करता है?)

10g के लिए संदर्भ:PL/SQL डेटाटाइप

<ब्लॉकक्वॉट>

छोटे VARCHAR2 चर को प्रदर्शन के लिए अनुकूलित किया गया है, और बड़े को कुशल मेमोरी उपयोग के लिए अनुकूलित किया गया है। कटऑफ पॉइंट 2000 बाइट्स है। एक VARCHAR2 के लिए जो 2000 बाइट्स या उससे अधिक है, PL/SQL गतिशील रूप से वास्तविक मान रखने के लिए केवल पर्याप्त मेमोरी आवंटित करता है। एक VARCHAR2 चर के लिए जो 2000 बाइट्स से छोटा है, PL/SQL चर की पूर्ण घोषित लंबाई का प्रचार करता है। उदाहरण के लिए, यदि आप एक VARCHAR2(2000 BYTE) चर और एक VARCHAR2(1999 BYTE) चर के लिए समान 500-बाइट मान निर्दिष्ट करते हैं, तो पहले वाला 500 बाइट लेता है और बाद वाला 1999 बाइट लेता है।

11g के लिए संदर्भ:PL/SQL कोड में मेमोरी ओवरहेड से बचना

<ब्लॉकक्वॉट>

अधिक . का आकार निर्दिष्ट करें VARCHAR2 चर के लिए 4000 से अधिक वर्ण; PL/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. Oracle 11g:स्थिर मान के लिए डिफ़ॉल्ट जब क्वेरी कुछ भी नहीं लौटाती है

  2. मिलीसेकंड के साथ दिनांक स्ट्रिंग के लिए Oracle to_date फ़ंक्शन का उपयोग करना

  3. oracle11g . में पैरामीटरयुक्त दृश्य बनाना

  4. Oracle 11gR2 के WM_CONCAT फ़ंक्शन का विभाजक बदलें

  5. Oracle SQL डेवलपर में डेटाबेस का नाम कैसे क्वेरी करें?