sql >> Databasteknik >  >> RDS >> Sqlserver

Hur mycket storlek Null-värdet tar i SQL Server

Om fältet är fast bredd tar lagring av NULL samma utrymme som alla andra värden - fältets bredd.

Om fältet är variabel bredd tar NULL-värdet ingen plats.

Utöver det utrymme som krävs för att lagra ett nollvärde finns det också en overhead för att ha en nollbar kolumn. För varje rad används en bit per nollbar kolumn för att markera om värdet för den kolumnen är null eller inte. Detta gäller oavsett om kolumnen är fast eller variabel längd.

Orsaken till de avvikelser som du har observerat i information från andra källor:

  • Början av den första artikeln är lite missvisande. Artikeln talar inte om kostnaden för att lagra ett NULL-värde, utan kostnaden för att ha förmågan att lagra en NULL (dvs kostnaden för att göra en kolumn nullbar). Det är sant att det kostar en del i lagringsutrymme att göra en kolumn nullbar, men när du har gjort det tar det mindre utrymme att lagra en NULL än det tar att lagra ett värde (för kolumner med variabel bredd).

  • Den andra länken verkar vara en fråga om Microsoft Access. Jag vet inte detaljerna om hur Access lagrar NULL-filer men jag skulle inte bli förvånad om det är annorlunda än SQL Server.



  1. Hur genererar jag kapslade json-objekt med inbyggda mysql-json-funktioner?

  2. hur man använder XMLImporter och FndXdfCmp i Oracle EBS

  3. Uppdaterar Salesforce från Oracle®

  4. SQL Server Error 110:Det finns färre kolumner i INSERT-satsen än de värden som anges i VALUES-satsen.