Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Ile rozmiaru ma wartość Null w SQL Server

Jeśli pole ma stałą szerokość, przechowywanie NULL zajmuje tyle samo miejsca, co każda inna wartość - szerokość pola.

Jeśli pole ma zmienną szerokość, wartość NULL nie zajmuje miejsca.

Oprócz miejsca wymaganego do przechowywania wartości null istnieje również obciążenie związane z posiadaniem kolumny dopuszczającej wartość null. Dla każdego wiersza jeden bit jest używany na kolumnę dopuszczającą wartość null, aby oznaczyć, czy wartość dla tej kolumny jest null, czy nie. Dzieje się tak niezależnie od tego, czy kolumna ma stałą czy zmienną długość.

Powód rozbieżności, które zauważyłeś w informacjach z innych źródeł:

  • Początek pierwszego artykułu jest nieco mylący. Artykuł nie mówi o koszcie przechowywania wartości NULL, ale o koszcie posiadania umiejętności przechowywać NULL (tj. koszt uczynienia kolumny dopuszczalną wartością null). Prawdą jest, że utworzenie kolumny z wartością null kosztuje trochę miejsca w pamięci, ale gdy już to zrobisz, zapisanie wartości NULL zajmuje mniej miejsca niż zapisanie wartości (dla kolumn o zmiennej szerokości).

  • Drugie łącze wydaje się być pytaniem o Microsoft Access. Nie znam szczegółów, w jaki sposób Access przechowuje wartości NULL, ale nie zdziwiłbym się, gdyby różnił się od 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. Sprawdź stan wszystkich wiadomości pocztowych bazy danych w programie SQL Server (T-SQL)

  2. Czy zapytania ANSI JOIN i inne niż ANSI JOIN będą działać inaczej?

  3. Jak wstawić ciąg do innego ciągu w SQL Server za pomocą STUFF()

  4. Ograniczenie sprawdzania nakładania się zakresu dat

  5. SQL Group BY, Top N pozycji dla każdej grupy