Tuesday, October 26, 2010

How much storage space is required for NULL values in SQL server 2008 ?

Only a single byte in storage record is required that defines a pointer to the column.

Remember that if the value is changed FROM NOT NULL TO NULL in case of TEXT/IMAGE columns, the space allocation is NOT FREED, until the row is deleted.


REFERENCE : MSDN article

http://support.microsoft.com/kb/65963


"For all standard data types, NULL values stored by Microsoft SQL Server do not take up any additional storage space. The only associated overhead for a column containing a NULL value is a single byte in the storage record that defines a pointer to the column. This is a fixed cost that is associated with the creation of the column. There is a special case for Text/Image storage.

If the columns were created with "nulls allowed," no additional space is allocated for Text and Image columns until data is actually inserted into those columns. However, once a Text or Image column has had data inserted into it, the page space remains allocated even if the column is changed to NULL. The only way to free this allocated page space is to delete the row. "

No comments:

Post a Comment