SQL सर्वर 2008 में varchar का उपयोग करने की गति प्रभाव


9

पुराने दिनों में, varcharओवर charका उपयोग करना एक बड़ी संख्या थी, क्योंकि varcharबाकी पंक्ति की तुलना में एक अलग पृष्ठ पर संग्रहीत किया गया था। यह SQL Server 2008 के साथ आज भी मामला है? क्या मैं किसी भी मेमोरी / परफॉर्मेंस गेन के साथ 1-3 varchar(5)कॉलम को char(5)कॉलम में बदलने से देखूंगा

a) 2.000.000 पंक्तियाँ b) यदि कोई varcharस्तंभ अनुक्रमणिका / प्राथमिक कुंजियों का हिस्सा है


2
प्रश्न की संभावित डुप्लिकेट कैसे बहुत लंबे क्षेत्र (varchar / nvarchar) प्रभाव प्रदर्शन और डिस्क उपयोग करते हैं? (MSSQL सर्वर 2008) । अगर आपको लगता है कि यह कोई डुप्लिकेट नहीं है, तो निश्चित रूप से आपको कुछ उत्तर भी मिलेंगे।
मैरिएन

जवाबों:


8

आप भ्रमित कर रहे हैं पाठ / varchar (अधिकतम) (LOB प्रकार) varchar (n) / char (n) के साथ

अन्यथा, यदि आप चार (1000) नहीं वरच (1000) का उपयोग करते हैं और औसत डेटा की लंबाई है, तो कहें, 42 यह खराब डिजाइन और बहुत सारा बर्बाद स्थान है।


DB2 के तहत और कुछ अन्य DB इंजन चार और varchar अलग तरीके से संग्रहीत किए गए थे और DB2 के लिए कुछ सलाह SQL सर्वर पर स्थानांतरित की गई थीं।
एंड्रयू बिकर्टन

@ और ब्रिकर्टन: अभी तक एक और मिथक ...
gbn

क्या आप मुझे बता सकते हैं कि उस मिथक को किस दिशा में ले जाया गया था? (मैं मानता हूं कि यह सलाह SQL सर्वर पर लागू नहीं होती है)
एंड्रयू बिकर्टन

मैं DB2 के मूल संस्करणों में से एक का भी उल्लेख कर रहा हूं (शायद पिछले 10yrs में इस तरह से नहीं हुआ है), SQL 2000 के साथ सलाह के समान है कि प्रदर्शन के मुद्दों के कारण पीके गैर-क्लस्टर होना चाहिए - हालांकि अभी भी अब सच नहीं है
एंड्रयू बिकर्टन

@Andrew Bickerton: बस SQL ​​सर्वर की डिस्क संरचनाओं को देखें (मुझसे कई SO उत्तर) stackoverflow.com/search?q=user%3A27535+anatomy । देर से जवाब के लिए क्षमा करें
gbn

3

आपको अपने स्कीमा के बारे में अधिक जानकारी के बिना विशिष्ट प्रदर्शन लाभ या हिट के बारे में बताना मुश्किल है, लेकिन सामान्य तौर पर आप डेटा को मैच करने के लिए डेटापे को परिभाषित करना चाहते हैं। यदि आपको एक निश्चित चौड़ाई की आवश्यकता है (उदाहरण के लिए, आप जानते हैं कि आपके पास हमेशा पांच वर्ण होंगे) तो आपको चार (5) का उपयोग करना चाहिए। यदि आपके पास डेटा की चर राशि है तो आपको varchar (5) का उपयोग करना चाहिए।

SQL के लिए, आप एक पेज पर जितने अधिक डेटा फिट कर सकते हैं, उतना बेहतर आपका प्रदर्शन।


3

जहाँ तक मुझे पता है कि SQL सर्वर ने कभी भी varchar या nvarchar डेटा प्रकारों को पंक्ति से बाहर संग्रहीत नहीं किया है। पाठ और NText अलग हैं। एक अतिरिक्त कुछ बिट्स हैं जो एक चर चौड़ाई कॉलम के लिए संग्रहीत हैं लेकिन इसके बारे में है।

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