কোনও এসকিউএল সার্ভার বিট কলাম সত্যিই একটি পুরো বাইট মূল্য স্থান ব্যবহার করে?


20

আমি এসএসএমএসের আশেপাশে তাকাচ্ছিলাম এবং লক্ষ্য করেছি আমার INTকলামগুলির "আকার" 4 বাইট (প্রত্যাশিত) কিন্তু আমার BITকলামগুলি পুরো বাইট ছিল দেখে আমি কিছুটা হতবাক হয়ে গিয়েছিলাম।

আমি যা দেখছিলাম তা কি ভুল বুঝেছি?


1
আমি ভাগ্যবান বোধ করব যে বিআইটি কলামগুলি শব্দের বাউন্ডারের পরিবর্তে বাইট বাউন্ডারে সারিবদ্ধ হয়েছে।
মাইক শেরিল 'ক্যাট রিক্যাল'

উত্তর:


17

আপনি সারণীতে কতগুলি বিট কলাম সংজ্ঞায়িত করেছেন? আমি এটি এমএসডিএন-তে পেয়েছি, এটিতে বলা হয়েছে যে 8 বা তার চেয়ে কম বিট কলামগুলি একটি বাইট হিসাবে সঞ্চিত রয়েছে।

http://msdn.microsoft.com/en-us/library/ms177603.aspx


এমএসডিএন উত্সের জন্য গৃহীত যা আমি সনাক্ত করতে ব্যর্থ হয়েছি। ধন্যবাদ।
নোট

14

হ্যাঁ.

যদি আপনার কেবল bitটেবিলে একটি কলাম থাকে তবে স্টোরেজটি ব্যবহার করে byteতবে 8 bitটি কলাম একই বাইটে সংরক্ষণ করা যায় সুতরাং পরবর্তী 7 টি সেই ক্ষেত্রে "মুক্ত"।

কলাম স্টোরেজগুলির জন্য NULL_BITMAP1 বিটও রয়েছে (আবার পরবর্তী বাইট পর্যন্ত গোল করা)। তথ্য পাতায় এই একটি রয়েছে bitসব কলামের জন্য হোক বা না হোক তারা অনুমতি নির্বিশেষে NULL(সঙ্গে ব্যতিক্রম nullable কলাম একটি মেটাডেটা পরে যোগ কেবল পরিবর্তন ALTER TABLEযেখানে সারি এখনো আপডেট হয়নি)


9

BITপ্রতি সারিতে একটি বাইট ব্যবহার করে তবে আপনি BITসেই বাইট স্টোরেজে 8 টি ফিল্ড প্যাক করতে পারেন ।

সুতরাং প্রথম ক্ষেত্রটির জন্য একটি বাইট খরচ হয়, তবে পরবর্তী সাতটি বিনামূল্যে !

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.