Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Espaço usado por nulos no banco de dados


Armazenar um NULL em uma coluna não custa especificamente nem economiza espaço. Para dados de comprimento fixo, todo o espaço ainda é reservado.

Por outro lado, os dados de comprimento variável requerem apenas o comprimento dos dados mais a sobrecarga para armazenar o comprimento real. Por exemplo, um VARCHAR(n) usará 2 bytes de dados para indicar esse comprimento real, portanto, o espaço de armazenamento necessário é sempre n+2.

Adicionalmente, deve-se mencionar que se SET ANSI_PADDING ON, um char(n) com um valor NULL se comportará como um VARCHAR(n).

Não importa o que aconteça, você não reconhecerá a "economia" de espaço ao armazenar NULLs ao usar o SQL Server 2000 ou o SQL Server 2005. O SQL Server 2008 apresenta o conceito de uma coluna esparsa, que pode gerar economia para colunas que são principalmente NULL.