Tôi đang làm việc trong việc tái cấu trúc cơ sở dữ liệu (SQL Server 2008) và thu thập đối số để thay đổi NCHAR(1)
cột (giữ Y|N
giá trị) thành BIT
. Mọi người đều hiểu điều này là cần thiết và không biết tại sao nó lại xảy ra nhưng sự thay đổi này ảnh hưởng đến cơ sở dữ liệu sản xuất, do đó các đối số nặng nề là bắt buộc. Bảng giữ danh mục địa chỉ (tối đa 1m hồ sơ).NCHAR (1) so với BIT
Đối số đầu tiên tôi tìm thấy - mỗi nchar fields mất 2 byte, mỗi 8 bit fields - 1 byte (tiếp theo 8 - thêm 1 byte).
Điều gì tiếp theo? Có lẽ một số chỉ số vấn đề hiệu suất?
Tự hỏi tại sao nhà thiết kế ban đầu quyết định unicode được yêu cầu chỉ lưu trữ 'N' và 'Y'!Tôi nghi ngờ rằng so sánh có thể sẽ nhanh hơn trên các lĩnh vực bit hơn các lĩnh vực 'nchar' nhưng không biết rằng cho một thực tế. –
Rõ ràng, lợi thế của 'NCHAR (1)' là bạn có thể mở rộng nó - [khi được yêu cầu] (http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx) - để giữ * các giá trị boolean khác. ;-) –
@Dean Harding: LOL. Tôi đã từng có một [PHB] (http://en.wikipedia.org/wiki/Pointy-haired_Boss) nhấn mạnh rằng chúng ta có thể đặt một trường 2 bit một chút vì nó chỉ là một chữ số. –