Em alguns casos o armazenamento dos dados deve ser cuidadosamente pensado para otimização, algum requisito específico de consulta pode ser menos importante que o espaço utilizado. Nesse sentido o SQL Server 2008 oferece um novo tipo de coluna chamada Sparce Column.

Para criar uma Sparce Column, utilize a palavra reservada SPARSE, conforme código a seguir:

CREATE TABLE Colaborador
(
	ColaboradorId int PRIMARY KEY,
	Nome varchar(80) NOT NULL,
	Titulo varchar(20) SPARSE NULL,
	TipoColaborador smallint SPARSE NULL
) ;
GO

Algumas considerações importantes sobre Sparce Columns:

  • Uma coluna do tipo Sparce Column deve ser definida como NULL;
  • Não pode ser dos tipos: text, ntext, image, timestamp, user-defined data type, geometry, ou geography; ou possuir um atributo FILESTREAM;
  • Não deve conter um valor default ou rule;
  • Uma coluna calculada não pode ser declarada com Sparse Column;
  • Não pode fazer parte de um índice;

Pelo fato das colunas do tipo Sparse aumentarem a sobrecarga de consulta para valores não nulos você deve considerar sua utilização quando o espaço ganho for de 20% a 40%, pelo menos. Um boa opção é a utilização em conjunto com Filtered Indexes, pois é possível indexar apenas linhas que contenham valores preenchidos criando um índice menor.

Até o próximo post da série.