Dando continuidade a série sobre as novidades do SQL Server 2008 veremos hoje o que são Filtered Indexes.
FILTERED INDEXES
A idéia é simples: índices criados com critério de filtro, ou seja, com uma cláusula WHERE, que usados corretamente podem conferir um ganho de performance interessante. Usar corretamente significa planejar a criação de um índice levando em consideração o tipo de consulta que será realizado, frequência de utilização, como os novos registros serão inseridos, e por aí vai.
Vamos ver como podemos criar filtered indexes criando primeiramente a seguinte tabela:
CREATE TABLE [dbo].[Colaborador] ( [ColaboradorId] [int] IDENTITY(1,1) NOT NULL, [Nome] [varchar](50) NOT NULL, [Email] [varchar](50) NULL, [Bonus] [int] NOT NULL, [TipoColaborador] [int] NULL, CONSTRAINT [PK_Colaborador] PRIMARY KEY CLUSTERED ( [ColaboradorId] ASC ) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] ) ON [PRIMARY] GO
Criaremos agora um índice com filtro, da seguinte forma:
CREATE NONCLUSTERED INDEX TipoColabIndex ON dbo.Colaborador(TipoColaborador) WHERE TipoColaborador = 1; GO
O código acima criará um índice para a tabela Colaborador levando em consideração um filtro pela coluna TipoColaborador com o valor igual a 1. Desta forma, o optimizer do SQL Server poderá usar o índice quando necessário. Até o próximo post.
Bom dia.
O sistema de avaliação de pontos está bugado no IE8 Final. Para mim só ficou disponível 1 ou 2 estrelas de avaliação no ie8 enquanto que no firefox 3 funcionou normalmente.
[]s
Bom dia, Ricardo, valeu pela observação. Assim que tiver corrigido coloco uma observação aqui. Abraços.
Ricardo, finalmente tive tempo para olhar o bug que você apontou. Fiz um post comentando a solução:
[quote]http://www.leandrodaniel.com//post/Ferramenta-para-desenvolvedores-do-IE8-em-acao.aspx[/quote]
Obrigado e abraços!