segunda-feira, 1 de novembro de 2010

Utilizando Filtered Index no SQL Server

A partir da versão 2008 do SQL Server existe um recurso muito interessante para a criação de índices, a utilização de filtros selecionando somente uma parte dos registros da tabela.

Esta opção cria índices mais enxutos com menos custo de manutenção e principalmente mais agilidade na seleção dos dados porque tem que tratar menos informações.

Exemplos de utilização: em tabelas históricas onde as consultas serão realizadas principalmente nos dados mais recentes, ou desprezar registros que tenham nulos em uma determinada coluna.

Para utilizar esta opção, basta acrescentar a cláusula WHERE com a expressão da seleção dos registros que deverão compor o índice.

Exemplos:

Criando um índice somente com as notas de 2010
CREATE NONCLUSTERED INDEX IN_NOTAS2010
ON NOTASFISCAIS
WHERE DATANOTA BETWEEN '01-JAN-2010' AND '31-DEC-2010';


Criando um índice somente com os funcionários ativos (sem data de rescisão)
CREATE NONCLUSTERED INDEX IN_FUNCIONARIOSATIVOS
ON FUNCIONARIOS
WHERE DATARESCISAO IS NOT NULL;

Nenhum comentário:

Postar um comentário