मैं SSMS के आसपास घूम रहा था और देखा कि मेरे INTकॉलम का "आकार" 4 बाइट्स (अपेक्षित) था, लेकिन मुझे यह देखकर थोड़ा झटका लगा कि मेरे BITकॉलम पूरे बाइट थे।
क्या मैं गलत समझ रहा था कि मैं क्या देख रहा था?
मैं SSMS के आसपास घूम रहा था और देखा कि मेरे INTकॉलम का "आकार" 4 बाइट्स (अपेक्षित) था, लेकिन मुझे यह देखकर थोड़ा झटका लगा कि मेरे BITकॉलम पूरे बाइट थे।
क्या मैं गलत समझ रहा था कि मैं क्या देख रहा था?
जवाबों:
आपने तालिका में कितने बिट कॉलम परिभाषित किए हैं? मैंने इसे MSDN पर पाया, यह कहता है कि 8 या उससे कम बिट कॉलम को एक बाइट के रूप में संग्रहीत किया जाता है।
हाँ।
यदि आपके पास bitतालिका में केवल एक स्तंभ है, तो भंडारण का उपयोग करता है, byteलेकिन 8 bitकॉलम तक एक ही बाइट में संग्रहीत किया जा सकता है, इसलिए अगले 7 उस संबंध में "स्वतंत्र" हैं।
NULL_BITMAP( प्रति फिर अगले बाइट के लिए गोल) के लिए 1 बिट प्रति स्तंभ भंडारण की आवश्यकता है । डेटा पृष्ठों में यह bitसभी कॉलमों के लिए है, भले ही वे अनुमति दें या न दें NULL( अशक्त स्तंभों के अपवाद के साथ बाद में मेटाडेटा के रूप में जोड़ा गया है केवल परिवर्तन के माध्यम से ALTER TABLEजहां पंक्ति अभी तक अपडेट नहीं हुई है)