sql >> Database teknologi >  >> RDS >> Sqlserver

Hvor meget størrelse Null-værdi tager i SQL Server

Hvis feltet har en fast bredde, tager lagring af NULL samme plads som enhver anden værdi - feltets bredde.

Hvis feltet er variabel bredde fylder NULL-værdien ikke.

Ud over den plads, der kræves for at gemme en nulværdi, er der også en overhead for at have en nullbar kolonne. For hver række bruges en bit pr. nullbar kolonne til at markere, om værdien for den kolonne er nul eller ej. Dette gælder uanset om kolonnen er fast eller variabel længde.

Årsagen til de uoverensstemmelser, du har observeret i oplysninger fra andre kilder:

  • Starten på den første artikel er lidt misvisende. Artiklen taler ikke om omkostningerne ved at opbevare en NULL-værdi, men omkostningerne ved at have evnen at gemme en NULL (dvs. omkostningerne ved at gøre en kolonne nullbar). Det er rigtigt, at det koster noget i lagerplads at gøre en kolonne nullbar, men når du først har gjort det, tager det mindre plads at gemme en NULL, end det tager at gemme en værdi (for kolonner med variabel bredde).

  • Det andet link ser ud til at være et spørgsmål om Microsoft Access. Jeg kender ikke detaljerne om, hvordan Access gemmer NULL'er, men jeg ville ikke blive overrasket, hvis det er anderledes end SQL Server.



  1. Fix Adgang nægtet for brugeren 'root'@'localhost' til phpMyAdmin

  2. Sådan fungerer GREATEST() i MariaDB

  3. Sletter element fra ListView og database med OnItemClickListener

  4. 12c VARCHAR2(32767)