TEXT
और VarChar(MAX)
नॉन-यूनिकोड बड़े वेरिएबल लेंथ कैरेक्टर डेटा टाइप हैं, जो अधिकतम 2147483647 नॉन-यूनिकोड कैरेक्टर (यानी अधिकतम स्टोरेज क्षमता: 2GB) स्टोर कर सकते हैं।
MSDN लिंक के अनुसार Microsoft पाठ डेटाटाइप का उपयोग करने से बचने का सुझाव दे रहा है और इसे Sql सर्वर के भविष्य के संस्करणों में हटा दिया जाएगा। Varchar (Max) पाठ डेटा प्रकार के बजाय बड़े स्ट्रिंग मानों को संग्रहीत करने के लिए सुझाया गया डेटा प्रकार है।
- इन-रो या आउट-ऑफ-रो स्टोरेज
एक Text
प्रकार के कॉलम का डेटा एक अलग LOB डेटा पृष्ठों में आउट-ऑफ-द-रो स्टोर किया जाता है। तालिका डेटा पृष्ठ में पंक्ति में LOB डेटा पृष्ठ पर केवल 16 बाइट पॉइंटर होगा जहां वास्तविक डेटा मौजूद है। जबकि एक Varchar(max)
प्रकार के कॉलम का डेटा इन-रो में संग्रहीत किया जाता है यदि यह 8000 बाइट से कम या बराबर है। यदि Varchar (अधिकतम) कॉलम वैल्यू 8000 बाइट्स को पार कर रहा है तो Varchar (मैक्सिमम) कॉलम वैल्यू को एक अलग LOB डेटा पेजों में संग्रहित किया जाता है और पंक्ति में LOB डेटा पेज पर केवल 16 बाइट पॉइंटर होगा जहां वास्तविक डेटा मौजूद है। इसलिए In-Row
वरचर (अधिकतम) खोजों और पुनर्प्राप्ति के लिए अच्छा है।
- समर्थित / असमर्थित कार्यशीलता
कुछ स्ट्रिंग फ़ंक्शंस, ऑपरेटर्स या कंस्ट्रक्ट्स जो टेक्स्ट टाइप कॉलम पर काम नहीं करते हैं, लेकिन वे वर्कर (मैक्स) टाइप कॉलम पर काम करते हैं।
=
वर्कर (मैक्स) टाइप कॉलम पर ऑपरेटर के बराबर
वर्कर (अधिकतम) प्रकार के कॉलम पर समूह द्वारा समूह
जैसा कि हम जानते हैं कि VarChar (Max) प्रकार के कॉलम मान केवल पंक्ति से बाहर संग्रहीत किए जाते हैं, यदि इसमें संग्रहीत किए जाने वाले मूल्य की लंबाई 8000 बाइट्स से अधिक हो या पंक्ति में पर्याप्त स्थान न हो, अन्यथा यह स्टोर हो जाएगा यह पंक्ति में है। इसलिए यदि वार्चर (अधिकतम) कॉलम में संग्रहीत अधिकांश मान बड़े और संग्रहीत आउट-ऑफ-रो हैं, तो डेटा पुनर्प्राप्ति व्यवहार लगभग पाठ प्रकार के स्तंभ के समान होगा।
लेकिन अगर वर्कर (अधिकतम) प्रकार के स्तंभों में संग्रहीत अधिकांश मान पंक्ति में संग्रहीत करने के लिए पर्याप्त छोटे हैं। फिर डेटा की पुनर्प्राप्ति जहां एलओबी कॉलम शामिल नहीं हैं, वहां पढ़ने के लिए अधिक संख्या में डेटा पृष्ठों की आवश्यकता होती है क्योंकि एलओबी कॉलम मूल्य को उसी डेटा पृष्ठ में पंक्ति में संग्रहीत किया जाता है जहां गैर-एलओबी कॉलम मान संग्रहीत होते हैं। लेकिन यदि चयनित क्वेरी में LOB कॉलम शामिल है, तो पाठ प्रकार के कॉलम की तुलना में डेटा पुनर्प्राप्ति के लिए पढ़ने के लिए कम पृष्ठों की आवश्यकता होती है।
निष्कर्ष
अच्छे प्रदर्शन के VarChar(MAX)
बजाय डेटा प्रकार का उपयोग करें TEXT
।
स्रोत