Saya mencari-cari SSMS dan melihat "ukuran" INT
kolom saya adalah 4 byte (diharapkan) tapi saya agak terkejut melihat BIT
kolom saya adalah byte penuh.
Apakah saya salah mengerti apa yang saya lihat?
Saya mencari-cari SSMS dan melihat "ukuran" INT
kolom saya adalah 4 byte (diharapkan) tapi saya agak terkejut melihat BIT
kolom saya adalah byte penuh.
Apakah saya salah mengerti apa yang saya lihat?
Jawaban:
Berapa banyak kolom bit yang telah Anda tetapkan dalam tabel? Saya menemukan ini di MSDN, katanya 8 atau kurang bit kolom disimpan sebagai satu byte.
Iya nih.
Jika Anda hanya memiliki satu bit
kolom dalam tabel maka penyimpanan menggunakan a byte
tetapi hingga 8 bit
kolom dapat disimpan dalam byte yang sama sehingga 7 berikutnya "bebas" dalam hal itu.
Ada juga 1 bit per kolom kebutuhan penyimpanan untuk NULL_BITMAP
(lagi dibulatkan ke byte berikutnya). Di halaman data ini berisi bit
untuk semua kolom terlepas dari apakah mereka mengizinkan NULL
(dengan pengecualian kolom nullable ditambahkan kemudian sebagai metadata hanya berubah melalui ALTER TABLE
mana baris belum diperbarui)