Um novo recurso interessantíssimo do SQL Server 2008 é o “Índice Filtrado”. Com ele, você cria condições que otimizam os índices e agilizam os resultados de uma consulta SQL.
Digamos, por exemplo, que temos uma tabela onde determinada coluna possui campos nulos. Basicamente, usa-se a cláusula WHERE na sintaxe de criação do índice:
CREATE INDEX [Nome_do_Indice]
ON [Nome_da_Tabela (Nome_da_Coluna)]
WHERE [Nome_da_Tabela (Nome_da_Coluna)] IS NOT NULL
Mas podemos ir mais além: Quando disse que este recurso era interessantíssimo, é porque já que podemos eliminar os registros nulos, podemos criar um índice único para esta mesma coluna, coisa que não era possível antes e cabia a aplicação realizar este controle:
CREATE UNIQUE INDEX [Nome_do_Indice]
ON [Nome_da_Tabela (Nome_da_Coluna)]
WHERE [Nome_da_Tabela (Nome_da_Coluna)] IS NOT NULL
Com este novo recurso ganha tanto o DBA (o banco de dados é quem passa a gerenciar registros duplicados), quanto o Desenvolvedor (que não precisa realizar este controle dentro de sua aplicação).
segunda-feira, 3 de agosto de 2009
SQL Server 2008: Índices Filtrados
Assinar:
Postar comentários (Atom)
Foi bastante útil! Vlw!
ResponderExcluir