Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Giá trị Null có kích thước bao nhiêu trong SQL Server

Nếu trường có chiều rộng cố định, lưu trữ NULL sẽ lấy cùng một không gian với bất kỳ giá trị nào khác - chiều rộng của trường.

Nếu trường có chiều rộng thay đổi, giá trị NULL không chiếm không gian.

Ngoài không gian cần thiết để lưu trữ giá trị null, còn có chi phí để có một cột có thể null. Đối với mỗi hàng, một bit được sử dụng cho mỗi cột có thể null để đánh dấu liệu giá trị của cột đó có phải là rỗng hay không. Điều này đúng cho dù cột có độ dài cố định hay thay đổi.

Lý do cho sự khác biệt mà bạn đã quan sát thấy trong thông tin từ các nguồn khác:

  • Mở đầu của bài viết đầu tiên là một chút sai lệch. Bài viết không nói về chi phí lưu trữ giá trị NULL, mà là chi phí để có khả năng để lưu trữ một NULL (tức là chi phí tạo một cột có giá trị rỗng). Đúng là tốn một khoảng không gian lưu trữ để làm cho một cột có thể trở thành null, nhưng khi bạn đã làm điều đó thì sẽ tốn ít dung lượng hơn để lưu trữ NULL so với việc lưu trữ một giá trị (đối với các cột có chiều rộng thay đổi).

  • Liên kết thứ hai dường như là một câu hỏi về Microsoft Access. Tôi không biết chi tiết về cách Access lưu trữ NULL nhưng tôi sẽ không ngạc nhiên nếu nó khác với SQL Server.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Tạo đăng nhập

  2. Bảo trì theo lịch trình của Cơ sở dữ liệu IS 24/7 trong MS SQL Server

  3. Tại sao KHÔNG NULL trả về giá trị NULL cho Varchar (tối đa) trong SQL Server?

  4. Cách lấy thông tin thống kê của máy chủ SQL bằng chức năng thống kê hệ thống

  5. Dấu thời gian Chèn và Cập nhật hàng trong SQL Server 2008