Nvarchar (MAX) की अधिकतम संख्या कितनी होगी?


102

मैं अवधारणा के लिए नया हूँ nvarchar(MAX)। कितने वर्ण धारण करेगा?

जवाबों:


155

मैक्स। क्षमता 2 गीगाबाइट स्थान है - इसलिए आप केवल 1 बिलियन 2-बाइट वर्णों को देख रहे हैं जो एक NVARCHAR(MAX)क्षेत्र में फिट होंगे ।

अन्य उत्तर की अधिक विस्तृत संख्याओं का उपयोग करते हुए, आपको स्टोर करने में सक्षम होना चाहिए

(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters

1 billion, 73 million, 741 thousand and 822 characters to be precise

आपके NVARCHAR(MAX)कॉलम में (दुर्भाग्यवश, वह अंतिम आधा पात्र व्यर्थ है ...)

अपडेट: जैसा कि @MartinMulder ने बताया: किसी भी वैरिएबल लेंथ कैरेक्टर कॉलम में वास्तविक लंबाई को स्टोर करने के लिए 2 बाइट ओवरहेड भी होता है - इसलिए मुझे 2 ^ 31 - 1पहले निर्धारित की गई लंबाई से दो और बाइट्स घटाना होगा - इस प्रकार आप 1 यूनिकोड कैरेक्टर को कम स्टोर कर सकते हैं। मैंने पहले भी दावा किया था।


1
वाह ... तो मुझे लगता है कि मुझे वास्तव में अधिकतम आकार सत्यापन नियम स्थापित करने के बारे में चिंता करने की आवश्यकता नहीं है। जब मैं nvarchar (MAX) का उपयोग करता हूं तो मुझे बेहतर परवाह थी।
क्विकेल्स

20
@quakkels: जब तक आप टॉल्स्टोई के युद्ध और शांति (लगभग 3.1 मिलियन अक्षर) को लगभग 350 गुना अधिक करने की योजना नहीं बनाते हैं - नहीं, आपको क्षमता के बारे में चिंता करने की आवश्यकता नहीं होगी :-) और चूंकि यह एक VARCHAR / NVARCHAR प्रकार है, इसलिए हमेशा केवल आवश्यकतानुसार अधिक से अधिक स्थान का उपयोग करें - व्यर्थ या अनावश्यक रूप से आरक्षित स्थान के बारे में कोई चिंता नहीं ...
marc_s

2
वास्तव में? यह अच्छा है। जिज्ञासा से बाहर, किस मामले में आप नवरच (मैक्स) का उपयोग नहीं करना चाहेंगे?
क्विकेल्स

5
@quakkels: VARCHAR(MAX)यदि आपको एशियाई, अरब या सिरिलिक भाषाओं के लिए 2-बाइट समर्थन की आवश्यकता नहीं है, तो उपयोग करें । का प्रयोग करें (N)VARCHAR(x)यदि आप जानते हैं एक स्ट्रिंग एक्स वर्णों से अधिक कभी नहीं होगा (प्रयोग नहीं करते NVARCHAR(MAX)एक प्रथम नाम के लिए - उपयोग NVARCHAR(50)या जो भी आप करने के लिए समझ में आता है)
marc_s

1
मैंने बस अपनी सुबह की शुरुआत करते हुए मुझसे एक ही सवाल पूछा और आपके दोनों जवाबों ने मेरे चेहरे पर एक बड़ी मुस्कान बिखेर दी। +1।
मथिस कोहली

11

से चार और varchar (Transact-SQL)

varchar [(n। अधिकतम)]

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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.