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

Spazio utilizzato dai null nel database

La memorizzazione di un NULL in una colonna non costa o risparmia spazio in modo specifico. Per i dati a lunghezza fissa, l'intero spazio è ancora riservato.

D'altra parte, i dati a lunghezza variabile richiedono solo la lunghezza dei dati più l'overhead per memorizzare la lunghezza effettiva. Ad esempio, un VARCHAR(n) utilizzerà 2 byte di dati per indicare quella lunghezza effettiva, quindi lo spazio di archiviazione richiesto è sempre n+2.

Inoltre, va detto che se SET ANSI_PADDING ON, un char(n) con un valore NULL si comporterà come un VARCHAR(n).

In ogni caso, non riconoscerai il "risparmio di spazio" derivante dall'archiviazione di NULL quando utilizzi SQL Server 2000 o SQL Server 2005. SQL Server 2008 introduce il concetto di colonna sparsa, che può produrre risparmi per colonne che sono principalmente NULL.