Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Колко размер заема стойността Null в SQL Server

Ако полето е с фиксирана ширина, съхраняването на NULL заема същото място като всяка друга стойност - ширината на полето.

Ако полето е с променлива ширина, стойността NULL не заема място.

В допълнение към пространството, необходимо за съхраняване на нулева стойност, има и допълнителни разходи за наличието на колона с нула. За всеки ред се използва един бит за колона с нула, за да се отбележи дали стойността за тази колона е нула или не. Това е вярно, независимо дали колоната е с фиксирана или с променлива дължина.

Причината за несъответствията, които сте забелязали в информация от други източници:

  • Началото на първата статия е малко подвеждащо. Статията не говори за цената на съхраняване на стойност NULL, а за цената на притежаването на способността за съхраняване на NULL (т.е. разходите за правене на колона за нула). Вярно е, че струва нещо в пространството за съхранение, за да направите колона нулева, но след като направите това, отнема по-малко място за съхранение на NULL, отколкото е необходимо за съхраняване на стойност (за колони с променлива ширина).

  • Втората връзка изглежда е въпрос за Microsoft Access. Не знам подробности за това как Access съхранява NULL числа, но няма да се изненадам, ако е различно от 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. Как да изразите своята стойност като DBA пред финансовите ръководители

  2. сравняване на колона със списък със стойности в t-sql

  3. Изтриване на пощенски профил на база данни в SQL Server (T-SQL)

  4. Какви са предимствата на VistaDB

  5. Групирана конкатенация в SQL Server