NVARCHAR (MAX) के लिए अधिकतम वर्ण क्या है?


212

मैंने NVARCHAR(MAX)SQL Server 2008 में एक प्रकार का स्तंभ घोषित किया है , अधिकतम लंबाई के रूप में अधिकतम होने वाले इसके सटीक अधिकतम वर्ण क्या होंगे?


जवाबों:


413

एक प्रकार के स्तंभ के लिए अधिकतम आकार NVARCHAR(MAX)2 जीबी स्टोरेज है।

चूंकि NVARCHARप्रति वर्ण 2 बाइट्स का उपयोग होता है, यह लगभग है। 1 बिलियन अक्षर।

लियो टॉल्स्टोज का वॉर एंड पीस एक 1'440 पेज की किताब है, जिसमें लगभग 600'000 शब्द हैं - इसलिए 6 मिलियन अक्षर हो सकते हैं - अच्छी तरह गोल। इसलिए आप प्रत्येक कॉलम में पूरे युद्ध और शांति पुस्तक की लगभग 166 प्रतियां चिपका सकते हैं NVARCHAR(MAX)

क्या यह आपकी आवश्यकताओं के लिए पर्याप्त जगह है? :-)


17
बस एक नाइट पिक। ज्यादातर पात्रों के लिए NVARCHAR 2 बाइट्स का उपयोग करता है। यू + 00 एफएफएफएफ पर यूनिकोड कैक्टर्स के लिए। यह चार बाइट्स का उपयोग करेगा।
एली अलग्रांति

7
यह परे-स्पार्टा पागलपन है।
मिस्टर जीकी

1
PostgreSQL NVCHAR (MAX) के बराबर क्या है?
प्रतीक

63

डिफ़ॉल्ट रूप से, nvarchar (MAX) मान बिल्कुल nvarchar (4000) मानों के समान संग्रहीत किए जाते हैं, जब तक कि वास्तविक लंबाई 4000 वर्णों तक न हो; उस स्थिति में, पंक्ति-पंक्ति डेटा को पॉइंटर द्वारा एक या एक से अधिक अलग पृष्ठों पर प्रतिस्थापित किया जाता है जहां डेटा संग्रहीत किया जाता है।

यदि आप संभावित रूप से 4000 वर्णों से अधिक डेटा का अनुमान लगाते हैं, तो निवारचर (MAX) निश्चित रूप से अनुशंसित विकल्प है।

स्रोत: https://social.msdn.microsoft.com/Forums/en-US/databasedesign/thread/d5e0c6e5-8e44-4ad5-9591-20dc0ac7a770/


12
यदि आपका डेटा 4000 वर्णों से अधिक नहीं होगा, तो यह भी पुनःप्राप्त नहीं किया जाएगा क्योंकि अनुक्रमणिका समस्याएँ हैं।
HLGEM

मेरा मानना ​​है कि यह पुराना है। @Marc_s से उत्तर देखें।
फाबियो मिल्हीरो

9

से MSDN प्रलेखन

nvarchar [(एन | अधिकतम )]

चर-लंबाई यूनिकोड स्ट्रिंग डेटा। n स्ट्रिंग की लंबाई को परिभाषित करता है और 4,000 के माध्यम से 1 से मान हो सकता है। अधिकतम इंगित करता है कि अधिकतम भंडारण आकार 2 ^ 31-1 बाइट्स (2 जीबी) है। भंडारण आकार, बाइट्स में, डेटा की वास्तविक लंबाई + 2 बाइट्स दर्ज की गई है


6

मुझे लगता है कि वास्तव में nvarchar(MAX)लगभग 1070000000 चरस स्टोर कर सकते हैं।


क्या आप बता सकते हैं कि आपको वह नंबर कहां मिल रहा है, और "सही" से आपका क्या मतलब है? (यानी आप कह रहे हैं कि यह एक कठिन सीमा नहीं है, लेकिन अधिक पात्रों के साथ समस्याएं हो सकती हैं? किस प्रकार की समस्याएं हैं? क्यों?)
आदि इनबार

3
मुझे यकीन नहीं है, लेकिन मुझे लगता है, अगर nvarchar एक char को स्टोर करने के लिए varchar की तुलना में दोगुनी जगह का उपयोग करता है, और अधिकतम मेमोरी की संख्या जो nvarchar (MAX) द्वारा chars को स्टोर करने के लिए उपयोग की जा सकती है, 2 ^ 31-1 => 2147364647, तब 2147483647/2 1073741824 है। सटीक रूप से मेरा मतलब है कि एक सटीक संख्या नहीं है।
फ्रांसिस्को जेवियर लिवरस सोटो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.